Histogram function plots different colours from those requested
Ältere Kommentare anzeigen
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):

Akzeptierte Antwort
Weitere Antworten (1)
Scott MacKenzie
am 28 Mär. 2022
Bearbeitet: Scott MacKenzie
am 28 Mär. 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 Kommentare
z8080
am 28 Mär. 2022
Scott MacKenzie
am 28 Mär. 2022
Bearbeitet: Scott MacKenzie
am 28 Mär. 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
am 29 Mär. 2022
Kategorien
Mehr zu Data Distribution Plots finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


