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

5 ビュー (過去 30 日間)
NETHRAVATHI S
NETHRAVATHI S 2021 年 4 月 25 日
コメント済み: Scott MacKenzie 2021 年 4 月 25 日
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 Center および File ExchangeData Exploration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by