
Change the color of each bar in the Bar graph of 3 arrays
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
NETHRAVATHI S
il 25 Apr 2021
Commentato: Scott MacKenzie
il 25 Apr 2021
Hi,
I am getting a bar graph like this with one color.
I need same color for the first element of each array.. My code is
like this

encomb=[4 3 2 1;5 4 3 2; 6 5 4 3 ];
figure(12)
hold on
bb=bar(encomb(:))
xlabel('type of consumer')
ylabel('energy consumed kWh/month')
title('Energy consumed for different case studies')
hold off
0 Commenti
Risposta accettata
Scott MacKenzie
il 25 Apr 2021
Try this, but with your own colors in clr:
clr = rand(12,3);
encomb=[4 3 2 1;5 4 3 2; 6 5 4 3 ];
figure(12)
hold on
bb=bar(encomb(:), 'facecolor', 'flat');
bb.CData = clr;
xlabel('type of consumer')
ylabel('energy consumed kWh/month')
title('Energy consumed for different case studies')
hold off
Output:

0 Commenti
Più risposte (1)
NETHRAVATHI S
il 25 Apr 2021
1 Commento
Scott MacKenzie
il 25 Apr 2021
Perhaps I misunderstood your original question. The issue maybe that you "ungrouped" the data by passing encomb(:) into the bar function. If you pass in encomb instead, the data are treated as groups, one group per row. You'll get different colors for each bar within a group, but the same color for bar positions between groups:
encomb=[4 3 2 1;5 4 3 2; 6 5 4 3 ];
figure(12)
hold on
bb=bar(encomb, 'facecolor', 'flat'); % NOTE: encomb, not encomb(:)
xlabel('type of consumer')
ylabel('energy consumed kWh/month')
title('Energy consumed for different case studies')
hold off

Here, you are getting MATLAB's default colors for a bar chart with grouped data. Is this what you want?
Vedere anche
Categorie
Scopri di più su Bar Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!