Matlab 颜色轮廓不同于pcolor
我正在使用pcolor和等高线。但是,如下图所示,无法从图中识别线的值Matlab 颜色轮廓不同于pcolor,matlab,contour,Matlab,Contour,我正在使用pcolor和等高线。但是,如下图所示,无法从图中识别线的值 [x y data] = peaks(1000); data = data / max(max(data)); colorDepth = 1000; colormap(jet(colorDepth)); hold on; pcolor(x,y,data); shading flat [C,hfigc] = contour(x, y, data,[0:0.1:1]); set(hfigc, ... 'LineWi
[x y data] = peaks(1000);
data = data / max(max(data));
colorDepth = 1000;
colormap(jet(colorDepth));
hold on;
pcolor(x,y,data); shading flat
[C,hfigc] = contour(x, y, data,[0:0.1:1]);
set(hfigc, ...
'LineWidth',1.0, ...
'Color', [1 1 1]);
hold off;
hcb = colorbar('location','EastOutside');
我更希望pcolor是灰色的,轮廓线是彩色的。然而,我需要一个轮廓线以及图例
编辑:
通过组合两个颜色贴图,它会以某种方式工作,但是颜色栏会同时显示这两个贴图,这不是我想要的。我更希望有一个彩色条,其中包括相同的轮廓线作为绘图
[x y data] = peaks(1000);
data = data - min(min(data));
data = data / max(max(data));
colorDepth = 1000;
hold on;
caxis([-1 1]);
colormap([gray(colorDepth); jet(colorDepth)]);
hplot = pcolor(x,y,data); shading flat
[C,hfigc] = contour(x, y, data-1,[-1:0.1:0]);
set(hfigc, 'LineWidth',1.0);
% set(hfigc, 'Color', [1 1 1]);
hold off;
hcb = colorbar('location','EastOutside');
编辑:
颜色条可以通过以下方式更正:
set(hcb, 'Ylim', [0 1]);
除了问题中已经给出的解决方案外,还可以使用工具并在单个图形中更改颜色映射
addpath('cm_and_cb_utilities');
addpath('freezeColors');
figure(1); clf;
[x y data] = peaks(1000);
data = data - min(min(data));
data = data / max(max(data));
colorDepth = 1000;
hold on;
caxis([0 1]);
colormap(jet(colorDepth));
hplot = pcolor(x,y,data); shading flat
hcb = colorbar('location','EastOutside');
set(hcb, 'Ylim', [0 1]);
cbfreeze;
freezeColors;
colormap(gray(colorDepth));
[C,hfigc] = contour(x, y, data,[0:0.1:1]);
set(hfigc, 'LineWidth',1.0);
hold off;
您的代码缺少对
zlevs
的定义(并且有一个小的输入错误)。我修复了输入错误。但是任何关于如何给轮廓涂上不同于绘图的颜色的最小提示都是错误的helpful@MatthiasPospiech:colorbar实际上是一个轴。您可以更改其任何属性,如x/y限制、颜色限制、位置等。您也可以模拟颜色栏或添加其他颜色栏,将其创建为单独的pcolor/imagesc绘图。@yuk:如何获取颜色栏的轴,或者通常如何获取任何绘图的轴句柄?您已经拥有了它。这是hcb。例如,您可以执行:set(hcb,'ylim',[01])
。当前轴的手柄为gca
。一般来说,看看你正在使用的图形函数的文档,它通常可以返回轴句柄。我在使用cbfreez时遇到了一个问题。我正在尝试使用你的例行程序,我得到了这个错误???在第一个参数处使用==>colormap时出错必须是标量轴句柄。332 cmap=colormap时==>cbfreeze中的错误(图);18 cbfreeze时==>testcolorbar出错;