0

请在下面找到我使用 Matlab 生成的 HeatMap 的副本。我有两个问题想解决:

1) 如您所见,HeatMap 仅显示三个不同的值。

Red   = 500
Green = 0
Black = 250

不幸的是,颜色栏显示了大约 10 个不同的值,即使是热图中未使用的颜色也是如此。我看不到如何改变这一点。有谁知道我可以如何自定义这个颜色栏/标签,以便它只覆盖实际使用的三个值?

2) 当我尝试绘制此热图时,我收到以下错误消息:

hmo = HeatMap(data)
HeatMap object with 20 rows and 20 columns.
plot(hmo);
Error using ==> figure
Invalid property found.
Object Name :  figure
Property Name :  'PagePosition'.
Error in ==> HeatMap.plot at 42
hFig = figure('Renderer',     'ZBuffer',...

非常感谢您的帮助!帕特里克

Matlab 热图

4

2 回答 2

1

文档中,您可以告诉HeatMap使用自定义颜色图:

HeatMap(Data, ...'Colormap', ColormapValue, ...)

您只需要 3 个值,因此使用 3 行制作颜色图:

cmap = [0 1 0; %# green
        0 0 0; %# black
        1 0 0;]%# red

然后,当您调用 时HeatMap,包括名称-值对;

hmo = HeatMap(data,'colormap',cmap);

注意:您可能需要手动设置clim轴属性。[0 500]

于 2012-07-27T15:28:15.980 回答
0

HeatMap函数看起来不是内置函数,因此很难说出其中发生了什么。但是,您的颜色条问题更容易解决。

问题是您的颜色图不仅由这三种颜色组成。如果需要,下面的这个示例应该足以向您展示如何手动更改它。

% Create some sample data and plot it
p = peaks;
surf(p)
colorbar

这将显示图形:

使用默认颜色图的图

现在,如果你想让你的自定义colormap只显示绿色、黑色和红色(按从下到上的顺序):

yourColorMap = [0 1 0; 0 0 0; 1 0 0]; % green, black red RGB code. One per row
colormap(yourColorMap)

将使您的图像看起来像这样:

图与您的自定义颜色图

于 2012-07-27T15:09:33.983 回答