Change the color of each bar in the Bar graph of 3 arrays

4 次查看(过去 30 天)
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

采纳的回答

Scott MacKenzie
Scott MacKenzie 2021-4-25
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:

更多回答(1 个)

NETHRAVATHI S
NETHRAVATHI S 2021-4-25
Hi,
Thank you.
Sorry I didnt mention in the question.
I need same color for the first element of each array.
  1 个评论
Scott MacKenzie
Scott MacKenzie 2021-4-25
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?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Exploration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by