登录论坛

查看完整版本 : [MATLAB基础] 请问如何给多组bar图设置多种颜色?


wj326_0
2009-07-22, 18:42
请问如何给多组bar图设置多种颜色?
例如
a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; bar(a);
见1.jpg
出现的是一共4组,每一组四条bar图(每一组的最后两条因为数据很少,所以显得很低),可是都是蓝颜色。(我的问题里是分成四组数据的,这里为了举例简单)

我想每一组的四条bar图按红,绿,黑,蓝四种颜色区分排列,四组都是这样,在网上找了很久可都没有找到方法,我自己的想法是
bar(a(1,1:3:13),'r',a(1,2:3:14),'g',a(1,3:3:15),'k',a(1,4:3:16),'b'); 可是不行
---------------------------------------------------------------------------------------------------
这个是一位朋友给我的建议

a=1:16; aa=reshape(a,4,4)'; h=bar(aa);
set(h(1),'FaceColor','r'); set(h(2),'FaceColor','g');
set(h(3),'FaceColor','k'); set(h(4),'FaceColor','b');

我试了一下,可是做出来的图形是被压缩了宽度 ,见test1.jpg
我自己试了两个方法
1。barwidth = 0.8;
bar(aa)
结果是没有变化,同test1.jpg

2。
aa=reshape(gesamt,6,4)';
h=bar(aa);
set(h(1),'FaceColor','r','BarWidth');
set(h(2),'FaceColor','g','BarWidth');
set(h(3),'FaceColor','k','BarWidth';
set(h(4),'FaceColor','b','BarWidth');

结果见test2.jpg,
matlab提示我set命令有错误
宽度有了变化,可是颜色是我无法控制的,
同时横坐标上的字样也不是我程序里作的,Sniffer 1, Sniffer 2,Sniffer 3Sniffer 4
而且我在程序里还有图例的命令,legend('Data','ACK','RTS','CTS');,也没有体现

可以麻烦大家帮我看看么,谢谢了

未注册
2010-09-19, 10:45
set(h(1),'FaceColor','r','BarWidth',0.8);

laosam280
2010-09-24, 20:30
那你为什么不放弃句柄操作,直接在图像上去操作呢?