How to overlay a pcolor plot with a contour plot that uses a different colormap?

瘦欲@ 提交于 2019-12-01 01:20:06

问题


Minimum example that does not achieve it:

[X,Y,Z] = peaks;
figure;
pcolor(X,Y,Z);
shading flat;
hold all;
axes;
contour(X,Y,Z);
colormap gray;  % this should only apply to the contour plot axes...
axis off;       % ... but it doesn't

This shows both the contour plot and the pseudo colour plot in the grayscale colourmap. However, what I want to achieve is only turning the contours gray.

This is just a minimalistic example, in reality the contour plot is of different data that has a different range, so two independent caxis settings are required as well.


回答1:


You can fix the problem by catenating two colormaps, and making sure that the values of the functions are such that they access the right part of the colormap:

cm = [jet(64);gray(64)];
figure,
pcolor(X,Y,Z)
shading flat
hold on
%# Z in the contour starts after the maximum
%# of Z in pcolor
contour(X,Y,Z-min(Z(:))+max(Z(:))+2,'LineWidth',2)
%# apply the colormap
colormap(cm)

For a more convenient solution, you may also want to have a look at this file exchange pick of the week



来源:https://stackoverflow.com/questions/5457723/how-to-overlay-a-pcolor-plot-with-a-contour-plot-that-uses-a-different-colormap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!