2014-06-16 178 views
6

這是我的矩陣改變顏色組合barplot在Matlab

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

任何人都可以幫我嗎?

回答

10

您可以使用手柄的'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

對於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' 
+3

此行爲是反射從R2014b及更高版本。你可能應該寫一個小記錄來說明這個問題,這樣你就不會混淆R2014a或更低版本的人,因爲這些版本仍然需要使用'set'來更改繪圖屬性。 – rayryeng

+0

用我的R2015b有必要添加'bar_handle(1).EdgeColor ='r'; bar_handle(2).EdgeColor ='b''在FaceColor之後。 – JaBe