How to normalize a histogram?
Afficher commentaires plus anciens
I am having an incredible amount of difficulty in finding a direct answer to this question. I have an array S that is 300x1. Using histogram(S) I obtain the following histogram:

This histogram is exactly what I need except for one problem. I want this to be a relative frequency histogram. As in, I want the y-axis values to be a percentage of the total number of data points (300). For example, the bin between 0.5 and 0.6 is approximately 73, so I would want it to read as (73/300) or 0.243.
I have seen many answers to this type of question telling users to use the hist function and then create a bar graph. I do not want a bar graph. I want the x-axis to remain unchanged as the actual data values, NOT as bin numbers. Can anyone help? Thanks!
Réponse acceptée
Plus de réponses (2)
mayank awasthi
le 7 Août 2018
1 vote
if we want to find the area under this histogram then how can we do that?
1 commentaire
Moritz Flor
le 21 Sep 2018
Extract the bin values from the histogram, add them and multiply them by the bin width:
%%create histogram
x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins)
%%extract parameters
counts = h.Values;
sum_counts = sum(counts);
width = h.BinWidth;
%%area of the histogram
area = sum_counts*width;
george veropoulos
le 24 Sep 2020
0 votes
hi
i want to normalized the histogram
i use the hist
[f x]=hist(fn,nbins);
dx = diff(x(1:2));
bar(x,f./(sum(f.*dx)));
how i can use the histogram
thank you
1 commentaire
sadegh sehhat
le 4 Jan 2022
Modifié(e) : sadegh sehhat
le 4 Jan 2022
insted of that you can use this code
if fn is your data set:
histogram(fn,nbins,'Normalization','pdf')
Catégories
En savoir plus sur Histograms dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!