【问题标题】:Matlab: Some Issues with HeatMapMatlab:热图的一些问题
【发布时间】:2012-07-31 15:38:22
【问题描述】:

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

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

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',...

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

【问题讨论】:

  • HeatMap 的代码在哪里?这个问题似乎在那里。另外,matlab 中的PaperPosition 用于定位图形而不是PagePosition

标签: matlab plot heatmap


【解决方案1】:

documentation,您可以告诉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]

【讨论】:

    【解决方案2】:

    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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2017-10-22
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      相关资源
      最近更新 更多