所以我目前确实有一个条形图显示红色的正值和蓝色的负值,但我的问题是当条形图显示所有负值或所有正值时,着色全部搞砸了。以下是我的代码:
dd = Data;
s = sign(dd);
barr = bar(dd);
set(get(barr,'children'),'cdata',s);
我也试过SET'FaceVertexCData'。
谢谢!
答案 0 :(得分:0)
在一个情节中制作两个条形图
x = 1:length(s);
bar( x(s>0), dd(s>0), 'b');
hold on;
bar( x(s<0), dd(s<0), 'r');
答案 1 :(得分:0)
您必须使用
定义一些颜色限制set(gca, 'CLim', [-1 1]);
没有它,当所有迹象都是正面或负面(例如s = [1 1 1 1]
)时,条形图以绿色绘制,这对应于色彩图的平均值。将颜色限制设置为[-1 1]会强制matlab使用颜色映射的极值。您也可以通过将CLim
设置为[-10 10]来更改颜色。