2014-06-16 2 views
6

Questa è la mia matriceCambiare il colore in barplot raggruppati in 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 

Se mi tracciarla come bar (n, 'raggruppati') mostra

BarPlot

voglio cambiare la colori predefiniti invece di blu rosso Voglio verde e giallo

Ho provato in questo modo bar (n, 'raggruppato', 'g', 'y') Ma sta mostrando
secondplot

qualcuno può aiutarmi?

risposta

10

È possibile utilizzare la proprietà 'FaceColor' delle maniglie agli oggetti:

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]) 

La documentazione spiega come impostare i colori here.

1

Per matlab2014b e superiori

Utilizzando set non sembra funzionare più dal matlab2014b e dà il messaggio (Error using subsindex: Function 'subsindex' is not defined for values of class 'matlab.graphics.chart.primitive.Bar'.).

Provalo direttamente con il manico:

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

Questo comportamento è riflettente di versioni da R2014b e superiori. Probabilmente dovresti fare una piccola nota che parla di questo in modo da non confondere le persone che hanno versioni da R2014a o meno, poiché tali versioni richiedono ancora l'uso di 'set' per modificare le proprietà del plot. – rayryeng

+0

Con il mio R2015b è stato necessario aggiungere 'bar_handle (1) .EdgeColor = 'r'; bar_handle (2) .EdgeColor = 'b'' dopo FaceColor. – JaBe