Matlab - 为pcolor中的值设置特定颜色

时间:2012-06-27 10:29:08

标签: matlab colors overlay

我创建了一个pcolor,其caxis范围从-3到3.但是,在数据中我有很多点,其值正好是1000.我想做的是保持着色相同的所有其他点,但将值为1000的任何点的颜色设置为黑色。有没有人有任何想法我怎么能这样做..?

提前多多感谢, 亚当

- 编辑 -

我目前正在使用pcolor,m_pcolor的映射工具创建绘图,如下所示(有关详细信息,请参阅here):

m_proj('Robinson')
h = m_pcolor(Lon', Lat', input_matrix);
m_coast('Color', 'k', 'LineWidth', 1);
set(h,'EdgeColor','none');

2 个答案:

答案 0 :(得分:3)

如果黑色作为等于1000的值的颜色不是严格要求,您只需将这些值设置为NaN

a(a==1000) = nan; 

函数pcolor将在白色中绘制nan值。

<强>〜编辑〜
要以黑色显示nan值,您可以将轴的背景更改为黑色:

set(gca, 'color', [0 0 0]);
hold on; 
pcolor(a); 

<强>〜EDIT2〜
如果您无法更改背景,请尝试以下解决方法:

h1 = pcolor(ones(size(a))); 
hold on; 
set(h1, 'facecolor', [0 0 0]); 
pcolor(a); 

这会将两个表面绘制在彼此之上,而下部表面设置为黑色。

答案 1 :(得分:1)

正如H.Muster所写,您可以将值等于1000设置为NaN。在这种情况下,轴颜色显示通过,默认为白色。如果您希望它为黑色,则可以设置轴对象的“颜色”属性:

a=[1 2 4; 3 NaN 5; 6 7 8];
pcolor(a);
set(gca, 'Color', 'Black')