フィルターのクリア

Two bar graphs - two data sets - different bin width

10 ビュー (過去 30 日間)
Flo
Flo 2016 年 7 月 4 日
回答済み: Duncan Po 2016 年 7 月 5 日
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

回答 (2 件)

José-Luis
José-Luis 2016 年 7 月 4 日
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 件のコメント
José-Luis
José-Luis 2016 年 7 月 5 日
Such a plot might be a mess depending on how you bins intersect though...
Flo
Flo 2016 年 7 月 5 日
By looking on google I've found a way apparently. It may interest some person. Let me know what you think about it:
figure(1);
[dummy, t] = hist([one;two], numBin);
nx = hist(one, t); % Sort x into bins.
nx = transpose(nx/sum(nx));
ny = hist(two, t); % Sort y into bins.
ny = transpose(ny/sum(ny));
bar(t, [nx, ny]);

サインインしてコメントする。


Duncan Po
Duncan Po 2016 年 7 月 5 日
histogram/histcounts have builtin support for Freedman-Diaconis rule:
histogram(x, 'BinMethod', 'fd')
or
[n, binedges] = histcounts(x, 'BinMethod', 'fd')

カテゴリ

Help Center および File ExchangeEnvironment and Settings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by