Filter löschen
Filter löschen

How can I print the mean and standard deviation in the histogram plot?

68 Ansichten (letzte 30 Tage)
Hi there
Dear all, I used the syntax below to plot the histogram:
h = histfit(x)
A probability distribution is also obtained from:
pd = fitdist(x,'Normal')
How can I automatically display the mean (mu) and standard deviation (sigma) in the histogram plot?

Akzeptierte Antwort

Image Analyst
Image Analyst am 9 Nov. 2023
I don't know if you can do it "automatically" but you can manually use title or text to display text on the chart:
x = randn(1000, 1);
h = histfit(x)
h =
2×1 graphics array: Bar Line
% A probability distribution is also obtained from:
pd = fitdist(x,'Normal')
pd =
NormalDistribution Normal distribution mu = 0.0281218 [-0.0336199, 0.0898636] sigma = 0.994957 [0.953181, 1.04059]
grid on;
% Display the mean and std dev.
caption = sprintf('Mean = %f, StDev = %f', pd.mu, pd.sigma);
title(caption)
  5 Kommentare
Paul Barrette
Paul Barrette am 15 Nov. 2023
I do not yet have that tool box (the quote I got for this license is about USD 1000), so am unable to comment on that function.
Navid
Navid am 15 Nov. 2023
I am grateful you took the time to share this information with me. Your assistance is highly appreciated.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Walter Roberson
Walter Roberson am 9 Nov. 2023
You can text the information into place. Or you can put it into a title or subtitle

Steven Lord
Steven Lord am 15 Nov. 2023
The other posters have interpreted "print" in the subject of your Answers post as displaying the numeric value. Another potential interpretation of that (and the word you used later in your question, "display") is to draw lines representing the mean and standard deviations. If you're interested in that visualization of the statistical quantities, use the xline function. I've slightly adapted the "Create Multiple Lines with Labels" example from that page for the example below.
x = randn(1, 1e5); % Sample data
h = histogram(x);
m = mean(x);
s = std(x);
xline([m, m-s, m+s], ":", ["\mu", "\mu- \sigma", "\mu+ \sigma"], ...
"Color", "r", "FontWeight", "bold")
  1 Kommentar
Navid
Navid am 15 Nov. 2023
I appreciate your assistance. However, as you know, the xline syntax is only supported by newer versions. Thank you again for your help.

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by