How to set common colorbar for multiplots?
488 次查看(过去 30 天)
显示 更早的评论
Hi all,
I am using subplots to plot multiple contour plots in a single figure using for loop and using colorbar with 'Position' but it doesn't give the common values for all the plots. I have tried different solution which was given to other Matlab users but none worked.
fig=figure(1)
clf
for i=1:24
subplot(6,4,i)
contourf(x,y,z)
end
h=axes(fig,'visible','off');
h.Title.Visible='on';
h.XLabel.Visible='on';
h.YLabel.Visible='on';
ylabel(h,'yaxis','FontWeight','bold');
xlabel(h,'xaxis','FontWeight','bold');
title(h,'title');
colormap(jet)
c=colorbar;
c.Position = [0.93 0.168 0.022 0.7];
Can you help me with this problem?
Thanks in advance!
0 个评论
采纳的回答
Robert U
2021-9-1
Hi UTKARSH VERMA,
[x, y] = meshgrid(0:0.1:1,0:0.1:1);
z = rand(11,11,24);
minColorLimit = min(min(min(z))); % determine colorbar limits from data
maxColorLimit = 24*max(max(max(z)));
fig=figure(1);
for i=1:24
sph{i} = subplot(6,4,i,'Parent',fig);
contourf(sph{i},x,y,i.*z(:,:,i)) % changes due to illustration purposes
caxis(sph{i},[minColorLimit,maxColorLimit]); % set colorbar limits
end
h = axes(fig,'visible','off');
h.Title.Visible = 'on';
h.XLabel.Visible = 'on';
h.YLabel.Visible = 'on';
ylabel(h,'yaxis','FontWeight','bold');
xlabel(h,'xaxis','FontWeight','bold');
title(h,'title');
c = colorbar(h,'Position',[0.93 0.168 0.022 0.7]); % attach colorbar to h
colormap(c,'jet')
caxis(h,[minColorLimit,maxColorLimit]); % set colorbar limits
Kind regards,
Robert
7 个评论
Robert U
2023-5-16
Try this:
NBayTEMPdetmnth = rand([256,256,12]);
clf;
fig=figure(1);
t = tiledlayout(4,3); t.TileSpacing = 'compact';
for i = 1:12
ah = nexttile;
[~, hContour]=contourf(ah,flip(NBayTEMPdetmnth(:,:,i)),25,'Linestyle','none','linewidth',0.5);
ah.XTick = [];
ah.YTick = [];
end
h = axes(fig,'visible','off');
h.Title.Visible = 'off';
h.XLabel.Visible = 'off';
h.YLabel.Visible = 'off';
c = colorbar(h,'Position',[0.93 0.168 0.022 0.7]); % attach colorbar to h
colormap(c,'jet')
caxis(h,[-5 20]); % set colorbar limits
Kind regards,
Robert
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Orange 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!