1

因此,我目前确实有一个条形图,它以红色显示正值,以蓝色显示负值,但我的问题是,当条形图显示所有负值或所有正值时,颜色都被弄乱了。以下是我的代码:

dd = Data;
s = sign(dd);
barr = bar(dd); 
set(get(barr,'children'),'cdata',s);  

我也尝试过 SET 'FaceVertexCData'。

谢谢!

4

2 回答 2

0

您必须定义一些颜色限制

set(gca, 'CLim', [-1 1]);

没有它,当所有符号为正或负(例如s = [1 1 1 1])时,条形图以绿色绘制,对应于颜色图的平均值。将颜色限制设置为 [-1 1] 会强制 matlab 使用颜色图的极值。例如,您还可以通过设置CLim为 [-10 10] 来更改颜色。

于 2013-09-30T00:40:20.183 回答
0

只需在一个图中制作两个条形图

x = 1:length(s);

bar( x(s>0), dd(s>0), 'b');
hold on;
bar( x(s<0), dd(s<0), 'r');
于 2013-09-29T19:00:22.860 回答