How do I get the FaceColor of a histogram if set to ‘auto’?

6 views (last 30 days)
h1 = histogram(data); get(h1, 'FaceColor');
Returns ‘auto’ and not the set color.

Accepted Answer

Cindy Solomon
Cindy Solomon on 2 Jun 2015
Hi Gero,
The actual FaceColor is based on the 'ColorOrder' property of the axes, so if you assumed that the color order hasn't been changed and that the histogram was the first thing plotted on that axes, you could query the color from that. Histograms follow the same model as plot, wherein the first item plotted uses the first color on the ColorOrder, the second item uses the second color, etc. For example, if you knew that the histogram was the first item plotted, you could do something like:
colorList = get(gca,'ColorOrder');
histColor = colorList(1,:);
Could you please clarify why you would need to get the color this way? I work at MathWorks and would like to better understand your use-case so that I can pass your feedback to the developers.
Hope this helps!
  2 Comments
Gero Nootz
Gero Nootz on 2 Jun 2015
Edited: Walter Roberson on 2 Jun 2015
Thanks Cindy,
I’m plotting more than one histogram on the same axis and later plot other things like lines and text which I would like to match in color to the histograms to which they belong.
Something like:
h2 = histogram(data)
plot(X, Y,'Color',h2.FaceColor)
text(,'Color',h2.FaceColor)
This works nicely if I specify the color like so:
h2 = histogram(data,'FaceColor',[0.851 0.325 0.098])
plot(X, Y,'Color',h2.FaceColor2)
but does not work in the previous case.
Walter Roberson
Walter Roberson on 2 Jun 2015
Cindy, is the implication that if you change order of Children in the axes, that the histogram might change color?

Sign in to comment.

More Answers (0)

Categories

Find more on Labels and Annotations in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!