Colours of a Histogram

47 visualizaciones (últimos 30 días)
Brian O'Connell
Brian O'Connell el 27 de Mzo. de 2022
Comentada: Brian O'Connell el 27 de Mzo. de 2022
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

Respuesta aceptada

Dave B
Dave B el 27 de Mzo. de 2022
Editada: Dave B el 27 de Mzo. de 2022
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);

Más respuestas (0)

Categorías

Más información sobre Bar Plots en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by