How to get the data as output along with the histogram plot?

3 vues (au cours des 30 derniers jours)
Angana Ray
Angana Ray le 1 Juin 2020
Commenté : Angana Ray le 4 Juin 2020
Hi,
I have a set of data which looks like
0.499783
0.499669
0.500231
0.499909
0.499542
0.50018
0.500785
0.49823
.... and so on (say I haev 50000 rows)
Now I am plotting
histogram(S,'Normalization','probability') , where S is the column containing the data.
I get the normalized probability histogram as a plot. But I want the data that is finally plotted, i.e., no. of hits in each bin or something like that. Such that in future I can get the same histogram plot without using the original raw data. Is that possible?

Réponse acceptée

Tommy
Tommy le 1 Juin 2020
You could request output from histogram():
h = histogram(S,'Normalization','probability');
and access properties such as h.BinEdges, h.BinCounts, h.Values, etc, described here.
Or you could use histcounts(), described here, after you plot your histogram:
histogram(S,'Normalization','probability');
[binCounts,binEdges] = histcounts(S,'Normalization','probability');
  5 commentaires
Tommy
Tommy le 3 Juin 2020
A histogram is basically a bunch of adjacent bars, with one bar per bin. So you could determine the centers of each bin and then call bar(), using a width of 1 to avoid any gap between the bins:
binCenters = binEdges(1:end-1) + diff(binEdges)/2;
bar(binCenters, binCounts, 1)
By adjusting the color and x limits (and possibly other properties) you could probably replicate the histogram plot exactly.
Using
histogram('BinEdges', binEdges, 'BinCounts', binCounts)
would definitely create the exact same plot (or at least I assume it would).
Angana Ray
Angana Ray le 4 Juin 2020
Thank you very very much

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by