2012-07-27 82 views
0

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

1)正如你所看到的,HeatMap只有三个不同的值,它显示。

Red = 500 
Green = 0 
Black = 250 

Unfortuantely时,彩条显示大约10不同的值,即使对于 未在热图中使用的颜色。我看不出如何改变这种状况。有谁知道 我如何定制这个Colorbar/label,以便它覆盖实际使用的三个值?

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 HeatMap

+1

“HeatMap”的代码在哪里?这个问题似乎在那里。另外,它是matlab中的“PaperPosition”,用于定位不是“PagePosition”的图形。 – 2012-07-27 15:07:16

回答

0

HeatMap功能不看是一个内置的功能,所以就很难说什么是有事情。但是,您的彩条问题更容易解决。

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

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

这将显示图:

Figure using default colormap

现在,如果你想使你的定制colormap,只显示绿色,黑色和红色(在这个底部到顶部的顺序):

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

会让你的形象是这样的:

Figure with your customised colormap

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]