imagesc() contour superposition

조회 수: 5 (최근 30일)
Articat
Articat 2019년 10월 23일
답변: Subhadeep Koley 2019년 10월 29일
Hi,
I am trying to plot a contour plot over an imagesc() plot.
I have the following code:
figure,
subplot(1,3,1);
xVal = 5;
[xSlVal,xSlice] = min(abs(xVal - xGrid2(1,:,1)));
norm_jet_xVeloc = velocityMag(:,xSlice,:)./max(max(max(velocityMag)));
veloc_mag_conotur = velocityMag(:,xSlice,:)./u;
imagesc(squeeze(zGrid2(:,1,1)),squeeze(yGrid2(1,1,:)),squeeze(norm_jet_xVeloc));
hold on
C = contour(squeeze(zGrid2(:,1,11)),squeeze(yGrid2(1,1,:)),squeeze(veloc_mag_conotur));
caxis([-0.5 0.5]);
colormap('gray');
set(gca,'YDir','normal');
pbaspect([6 40 1]);
xlim([ -3 3]);
ylim([ 0 40]);
xlabel('z (mm)');
ylabel('y (mm)');
I think that it is working however I can't see the contour lines over the imagesc() magnitude plot. Is there another way to plot contour for a different color?
Thanks for your help.
  댓글 수: 1
Robert U
Robert U 2019년 10월 24일
Please provide the data that is necessary to reproduce your plot.

댓글을 달려면 로그인하십시오.

채택된 답변

Subhadeep Koley
Subhadeep Koley 2019년 10월 29일
It is difficult to provide exact solution without the exact data but the following is a demo code which superimposes a contour() plot over an imagesc() plot while assigning different colormaps to each of them.
% Plot first data
ax1 = axes;
imagesc(ax1,imread('cameraman.tif'));
axis square; hold all;
% Plot second data
ax2 = axes;
contour(ax2,imread('cameraman.tif'));
axis square; hold off;
% Only to reverse the y axis,
set(ax2,'ydir','reverse')
% Link axes
linkaxes([ax1,ax2])
% Hide the top axes
ax2.Visible = 'off';
ax2.XTick = [];
ax2.YTick = [];
% Add differenct colormap to different data if you wish
colormap(ax1,'gray'); % Colormap for the imagesc plot
colormap(ax2,'hsv'); % Colormap for the contour plot
contourOverImagesc.png

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Contour Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by