我正在使用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, ...
'LineWidth',1.0, ...
'Color', [1 1 1]);
hold off;
hcb = colorbar('location','EastOutside');
Run Code Online (Sandbox Code Playgroud)

我宁愿希望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');
Run Code Online (Sandbox Code Playgroud)
编辑:可以使用
set(hcb, 'Ylim', [0 1]);
Run Code Online (Sandbox Code Playgroud)

除了问题中已经提出的解决方案之外,还可以使用工具freezeColors和COLORMAP以及COLORBAR实用程序在单个图中更改色彩映射表
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;
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
10261 次 |
| 最近记录: |