Clear Filters
Clear Filters

Change bar graph color by sign

5 views (last 30 days)
Lutrinae
Lutrinae on 10 Nov 2020
Commented: Lutrinae on 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!

Accepted Answer

Karthik Ravishankar
Karthik Ravishankar on 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')

More Answers (1)

David Hill
David Hill on 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!