因此,我目前确实有一个条形图,它以红色显示正值,以蓝色显示负值,但我的问题是,当条形图显示所有负值或所有正值时,颜色都被弄乱了。以下是我的代码:
dd = Data;
s = sign(dd);
barr = bar(dd);
set(get(barr,'children'),'cdata',s);
我也尝试过 SET 'FaceVertexCData'。
谢谢!
您必须定义一些颜色限制
set(gca, 'CLim', [-1 1]);
没有它,当所有符号为正或负(例如s = [1 1 1 1]
)时,条形图以绿色绘制,对应于颜色图的平均值。将颜色限制设置为 [-1 1] 会强制 matlab 使用颜色图的极值。例如,您还可以通过设置CLim
为 [-10 10] 来更改颜色。
只需在一个图中制作两个条形图
x = 1:length(s);
bar( x(s>0), dd(s>0), 'b');
hold on;
bar( x(s<0), dd(s<0), 'r');