我正在尝试创建一个具有特定配色方案的contourf图。我将颜色映射定义为特定的矩阵值,并在代码中这样定义它。
cb=[.64 .08 .18;1 0 0;1 .41 .16;1 1 .07;1 1 1;0 1 0;0 1 1;.07 .62 1;0 0 1];
这是我的轮廓情节脚本。
figure
contourf(X_w,Z_w,w,'LevelList', [-.1 .1 .2 .4 .6],'LineColor','none')
ylim([0 4])
xlim([-4 20])
xticks([-4 -2 0 2 4 6 8 10 12 14 16 18 20])
yticks([0 .5 1 1.5 2 2.5 3 3.5 4])
pbaspect([3 1 1])
colormap(flipud(cb))
colorbar('Ytick',-.6:.2:.6)
caxis([-.6 .6])
它产生的数字是这样的。[1] :https://i.stack.imgur.com/b7SNv.png
一切都是正确的,但白色和绿色应该切换。颜色条是正确的,值也是正确的,但颜色图与颜色条不匹配。绿色应该是白色,白色应该是绿色。
有什么建议吗?
您可能会从所需颜色之间的插值中受益,从而使绘图在颜色之间平滑过渡。可能发生的情况是,你认为为0的数据实际上非常小,而且是负的。我同意reza的观点,即需要提供绘图数据以进一步提供帮助。在此之前,请尝试使用interp1
函数重新定义所需的映射,如下所示:
cb = interp1(1:9,cb,linspace(1,9,128),'pchip');
请注意,我在这里只使用数字9,因为这就是你有多少种颜色。数字128只是所需输出点(插值颜色(的数量。