Azzera filtri
Azzera filtri

Change bar graph color by sign

5 visualizzazioni (ultimi 30 giorni)
Lutrinae
Lutrinae il 10 Nov 2020
Commentato: Lutrinae il 16 Nov 2020
I have a 502x2 column matrix made up of B = [datenum, data]. There are positive nad negative data values, and I want to make all of the positive values red and all of the negative values blue, similar to the figure midway down this page: https://niwa.co.nz/climate/information-and-resources/southern-annular-mode
My code so far is just:
bar(B(:,1), B(:,2))
Is there a straightforward way to do this?
Thank you!

Risposta accettata

Karthik Ravishankar
Karthik Ravishankar il 10 Nov 2020
bar(B(B(:,2)>=0,1), B(B(:,2)>=0,2),'FaceColor','b')
hold on
bar(B(B(:,2)<0,1), B(B(:,2)<0,2),'FaceColor','r')

Più risposte (1)

David Hill
David Hill il 10 Nov 2020
x=B(:,1)';
y=B(:,1)';
b=bar(x,y,'r');
b.FaceColor='Flat';
b.CData(y<0,:)=repmat([0 0 1],nnz(y<0),1);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by