Histogram function plots different colours from those requested
Mostrar comentarios más antiguos
I"m trying to color-code each of 4 histograms using a predefined color scheme. Here's a minimal working example:
colours = [0 32 96;
192 0 0;
71 207 255;
255 143 143;
] / 255;
for i=1:4
x = randn(1,100);
subplot(1,4, i)
values = histogram(x, 'FaceColor', colours (i, :));
end
However, in the image I'm getting, the colors are actually (slightly) different, for instance for the first histogram I get (102,121,160) instead of (0,32,96):

Respuesta aceptada
Más respuestas (1)
Scott MacKenzie
el 28 de Mzo. de 2022
Editada: Scott MacKenzie
el 28 de Mzo. de 2022
The histogram function uses a face alpha of 0.6 by default. That's why the colors appear a bit lighter than the values from your eye dropper app. If you set the face alpha to 1.0 (see below), then the displayed colors will agree with the eye dropper values.
colours = [0 32 96;
192 0 0;
71 207 255;
255 143 143;
] / 255;
for i=1:4
x = randn(1,100);
subplot(2,4, i)
values = histogram(x,'FaceColor', colours(i, :));
values.FaceAlpha = 1.0; % NOTE: default is 0.6
values.FaceColor * 255
end
3 comentarios
z8080
el 28 de Mzo. de 2022
Scott MacKenzie
el 28 de Mzo. de 2022
Editada: Scott MacKenzie
el 28 de Mzo. de 2022
@z8080, hmm, right your are. I dug a bit deeper and discovered why there is a discrepancy between the set colors and the eye dropper colors. See my modified answer for the details.
z8080
el 29 de Mzo. de 2022
Categorías
Más información sobre Data Distribution Plots en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


