Fitting a curve to a histogram

103 次查看(过去 30 天)
ka chun yick
ka chun yick 2020-2-13
评论: chi qiu 2020-9-30
Hi,
This is my current script. I would like to fit a curve to a histogram as shown in the picture below: What lines should i add to the existing script?
yA = randn(1000,1)*7+15;
yB = randn(1000,1)*3+7;
yC = randn(1000,1)*4+30;
% specify number of bins and edges of those bins; this example evenly spaces bins
NumBins = 25;
BinEdges = linspace(0,50,25);
% use histcounts and specify your bins
cntA = histcounts(yA,'BinEdges',BinEdges);
cntB = histcounts(yB,'BinEdges',BinEdges);
cntC = histcounts(yC,'BinEdges',BinEdges);
% plot
figure(1); cla; hold on;
% convert bin edges into bin centers
b = BinEdges(1:end-1)+diff(BinEdges)/2
% use bar
bar(b,[cntA',cntB',cntC'],'stacked')

回答(2 个)

KALYAN ACHARJYA
KALYAN ACHARJYA 2020-2-13
data=[yA;yB;yC]
histfit(data)

ka chun yick
ka chun yick 2020-2-14
编辑:ka chun yick 2020-2-14
Hi,
I added these two lines, but the plot seems not correct..... I tried
% specify number of bins and edges of those bins; this example evenly spaces bins
NumBins = 100;
BinEdges = linspace(0,35,70);
% use histcounts and specify your bins
cntA = histcounts(yA,'BinEdges',BinEdges);
cntB = histcounts(yB,'BinEdges',BinEdges);
cntC = histcounts(yC,'BinEdges',BinEdges);
% plot
figure(1); cla; hold on;
data=[yA;yB;yC]
histfit(data)
% convert bin edges into bin centers
b = BinEdges(1:end-1)+diff(BinEdges)/2
% use bar
bar(b,[cntA',cntB',cntC'],'stacked')
% Labels
xlabel('Length of single walled carbon nanotubes (mm)')
ylabel('Count of CNT(log scale)')
set(gca,'YScale','log')
legend({'30(mins)', '120(mins)', '240(mins)'})
title('Count of CNT against length of SWCNTs in -0.67 degree(log scale)')

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by