Using imagesc and scatter together

35 次查看(过去 30 天)
Hello! I need to impoverish these two teams and there must be 2 colorbar, how do I do this ???
x=[1:150]
y=[1:150]
z=rand(1,150) % summer
p=rand(1,150) % winter
figure(1)
imagesc(x,y ,p)
colormap(winter)
colorbar;
hold on
scatter( x,y,[],z,'d', 'filled')
colormap(summer)
colorbar;
hold off
  1 个评论
Image Analyst
Image Analyst 2020-1-21
What do you mean by "impoverish"? To me it means to make poorer, less wealthy, have less money, none of which seem to apply to images and scatterplots. For what it's worth, I'm attaching demos for how you can combine multiple plots or images onto a single axes.

请先登录,再进行评论。

回答(1 个)

Subhadeep Koley
Subhadeep Koley 2020-2-3
编辑:Subhadeep Koley 2020-2-6
Assuming you want to display one scatter plot over one imagesc graph both having different colormap and colorbar. Give the below code a try.
close all; clc;
x = 1:150;
y = 1:150;
z = rand(1, 150);
p = rand(1, 150);
figure; ax1 = axes;
% Plot first data
imagesc(ax1, x, y ,p);
hold on;
% Plot second data
ax2 = axes;
ax2.YDir = 'reverse';
scatter(ax2, x, y, [], z, 'd', 'filled');
% Link axes
linkaxes([ax1, ax2]);
% Hide the top axes
ax2.Visible = 'off';
ax2.XTick = [];
ax2.YTick = [];
% ax2.YDir = 'reverse';
% Add differenct colormap to different data if you wish
colormap(ax1, 'winter')
colormap(ax2, 'summer')
% Set the axes and colorbar position
set([ax1,ax2],'Position', [.17 .11 .685 .815]);
cb1 = colorbar(ax1,'Position', [.05 .11 .0675 .815]);
cb2 = colorbar(ax2,'Position', [.88 .11 .0675 .815]);
hold off;
scatterOverImagesc.png
  3 个评论
Adam Danz
Adam Danz 2020-2-6
编辑:Adam Danz 2020-2-6
@Lev Mihailov, this answer does what you're looking for. Don't forget to accept answers to your questions to show some gratitude to the volunteers who are helping you.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by