在Matlab中更改分组条形图中的颜色

时间:2014-06-16 10:40:55

标签: matlab plot bar-chart

这是我的矩阵

n =

   46.4000   51.8000
   44.8000   44.9000
   67.2000   85.0000
   54.4000   60.3000
   43.2000   57.0000
   51.2000   68.0000
   75.2000   76.0000
   44.8000   51.3000
   67.2000   72.2000
   70.4000   71.2000

如果我将其绘制为条状(n,'分组'),则显示

BarPlot

我想更改默认颜色而不是蓝色红色我想要绿色和黄色

我试过这样的方式吧(n,'分组','g','y')但是它显示了 secondplot

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:12)

您可以使用句柄的'FaceColor'属性:

n=[46.4000   51.8000
   44.8000   44.9000
   67.2000   85.0000
   54.4000   60.3000
   43.2000   57.0000
   51.2000   68.0000
   75.2000   76.0000
   44.8000   51.3000
   67.2000   72.2000
   70.4000   71.2000];
bar_handle = bar(n,'grouped');
set(bar_handle(1),'FaceColor',[0,1,0])
set(bar_handle(2),'FaceColor',[1,1,0])

文档说明了如何设置颜色here

答案 1 :(得分:3)

对于matlab2014b及更高版本

使用set似乎不再起作用,因为matlab2014b并给出了消息(Error using subsindex: Function 'subsindex' is not defined for values of class 'matlab.graphics.chart.primitive.Bar'.)。

直接使用句柄尝试:

n=[46.4000   51.8000
44.8000   44.9000
67.2000   85.0000
54.4000   60.3000
43.2000   57.0000
51.2000   68.0000
75.2000   76.0000
44.8000   51.3000
67.2000   72.2000
70.4000   71.2000];

bar_handle = bar(n,'grouped');
bar_handle(1).FaceColor = 'r'
bar_handle(2).FaceColor = 'b'