Matlab - 使用不同的色彩图将两个pcolor绘制在彼此的顶部

时间:2012-06-27 15:04:35

标签: matlab colors plot

我将两个pcolor绘制在一起(使用m_map算法m_pcolor)。原因是第二个pcolor具有透明度,因此显示了下面的pcolor。第一个图只包含1和0,我希望它只是黑色和白色。我希望第二个使用colormap jet,但我不知道如何设置一个色图而不改变另一个。我的代码目前是:

h1 = m_pcolor(Lon', Lat', black_background);
hold on; 
h = m_pcolor(Lon', Lat', input_matrix);

提前致谢, 亚当

1 个答案:

答案 0 :(得分:1)

对于这个有限的应用程序,最简单的方法可能是在colormap上附加一行零,自己处理缩放(clim属性),以便每个绘图都利用colormap的相应部分。

cm=colormap('jet'); %# Nx3
cm = [cm; 0 0 0]; %# append black row: (N+1)x3

h1 = m_pcolor(Lon',Lat',black_background);
set(h1,'clim',[length(colormap),length(colormap)])

hold on
h2 = m_pcolor(Lon', Lat', input_matrix);
set(h2,'clim',[length(colormap)-1, length(colormap)-1])

这应该让你接近,但我没有测试过,因为我不在我的matlab机器上。

另一个选项是来自文件交换的freezeColors(但这可能仅适用于同一图窗口内的不同轴,我不确定同一轴对象中的不同图)。