Two bar graphs - two data sets - different bin width
Afficher commentaires plus anciens
Hi everyone,
I am kinda new to matlab and may not have been asking the right question to google. Anyway, here is my problem: I've got two data sets called one and two:
none = length(one)
ntwo = length(two)
%h = nan(max(none,ntwo),2)
h(1:none,1)=one
h(1:ntwo,2)=two
From there I extract the best bin width and the theoretical best amount of bin for each data set ( following the The Freedman-Diaconis rule):
%one -------
minNumberOne = round(min(h(1:none,1)))
maxNumberOne = ceil(max(h(1:none,1)))
iqrVarOne = iqr(h(1:none,1))
hOne = ceil(2 * iqrVarOne * none^(-1/3))
binsOne = ceil((maxNumberOne - minNumberOne)/hOne)
%two -------
minNumberTwo = round(min(h(1:ntwo,2)))
maxNumberTwo = ceil(max(h(1:ntwo,2)))
iqrVarTwo = iqr(h(1:ntwo,2))
hTwo = ceil(2 * iqrVarTwo * ntwo^(-1/3))
binsTwo = ceil((maxNumberTwo - minNumberTwo)/hTwo)
From now I am a bit lost. I'd like to apply for each bar graph the number of bin and the bin width, AND displaying those graph on the same figure, like that:

My code:
figure(1)
data = [h(:,1) h(:,2)]
[y, x] = hist(data)
bar(x,y, 'group')
this code doesn't take into account the bins calculated before of course. Do you have any ideas on how to integrate that to my code?
Cheers everyone. I hope I have been clear enough...
Flo
Réponses (2)
José-Luis
le 4 Juil 2016
one = rand(100,1);
two = rand(100,1);
nOne = 10;
nTwo = 15;
figure
histogram(one,nOne);
hold on;
histogram(two,nTwo);
%clearer
figure
ksdensity(one);
hold on;
ksdensity(two)
9 commentaires
Flo
le 4 Juil 2016
Flo
le 4 Juil 2016
José-Luis
le 5 Juil 2016
I'm not sure I follow. How do you want your plot to look?
Flo
le 5 Juil 2016
José-Luis
le 5 Juil 2016
How would the grouping work if your custom edges have different sizes?
Flo
le 5 Juil 2016
José-Luis
le 5 Juil 2016
Such a plot might be a mess depending on how you bins intersect though...
Flo
le 5 Juil 2016
Duncan Po
le 5 Juil 2016
0 votes
histogram/histcounts have builtin support for Freedman-Diaconis rule:
histogram(x, 'BinMethod', 'fd')
or
[n, binedges] = histcounts(x, 'BinMethod', 'fd')
Catégories
En savoir plus sur Annotations 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!