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

11 views (last 30 days)
Angana Ray on 1 Jun 2020
Commented: Angana Ray on 4 Jun 2020 at 7:25
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?

Tommy on 1 Jun 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');

Angana Ray on 3 Jun 2020 at 17:11
Can you please elaborate bar() ?
Thank you.
Tommy on 3 Jun 2020 at 17:50
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 on 4 Jun 2020 at 7:25
Thank you very very much