필터 지우기
필터 지우기

Colours of a Histogram

조회 수: 24 (최근 30일)
Brian O'Connell
Brian O'Connell 2022년 3월 27일
댓글: Brian O'Connell 2022년 3월 27일
Hi,
I have a histogram with 7 categories, that I created using the code...
data = sum(prod2020)
x = ["Fossil" "Biomass" "Geothermal" "Hydro" "Solar" "Wind" "Other" ];
C = categorical(x);
y = [data];
h = histogram('Categories', C, 'BinCounts', y);
I would like to colour the bars separate colours.
mycolour = ['red' 'cyan' 'black' 'blue' 'yellow' 'green''magenta'];
I don't seem to be able to add this into my command in any way.
any ideas?
thanks
b

채택된 답변

Dave B
Dave B 2022년 3월 27일
편집: Dave B 2022년 3월 27일
If you're specifying the counts, could you use bar instead of histogram? bar has a CData property for this purpose. The limits will appear slightly different but other than that it's pretty similar.
Notes:
  • I called categorical with (x,x) to ensure the categories are plotted in the same order that they were specified (otherwise bar will place them in alphabetical order).
  • You'll need to specify FaceColor as 'flat' to make bar use CData
  • I used validatecolor to convert the colors to an RGB matrix
I put both into a tiledlayout just to do the comparison side-by-side:
x = ["Fossil" "Biomass" "Geothermal" "Hydro" "Solar" "Wind" "Other" ];
C = categorical(x,x);
y = sum(rand(7));
nexttile;
h = histogram("Categories", C, "BinCounts", y);
nexttile
clrs=validatecolor(["red" "cyan" "black" "blue" "yellow" "green" "magenta"],'multiple');
b = bar(C,y,'FaceColor','flat','CData',clrs,'BarWidth',.9);
  댓글 수: 1
Brian O'Connell
Brian O'Connell 2022년 3월 27일
Thank you so much...

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by