Histogram with added density function

조회 수: 9 (최근 30일)
Alexander Tollinger
Alexander Tollinger 2020년 3월 29일
편집: Ameer Hamza 2020년 3월 29일
Hey guys,
I am new to Matlab and have a simple question about plots and histograms.
I'd need to create four subplots with each containing a histogram. On every histogram the number of datapoints increases. first histo: 5 datapoints, second histo: 50 datapoints, thrid histo: 500 dp , fourth histo: 5000 dp.
  • The datapoints should have an exponential distribution with mean value = 1 (I used exprnd command).
  • Additionally I need to add a cdf density function to each subplot. (distribution parameter can also be 1)
clc;
clear all;
close all;
rng('default');
datapoints5 = exprnd(1 , [5,1]);
datapoints50 = exprnd(1 , [50,1]);
datapoints500 = exprnd(1 , [500,1]);
datapoints5000 = exprnd(1 , [5000,1]);
plot(cdf,histogram(datapoints5000));
histogram(datapoints500);
histogram(datapoints50);
histogram(datapoints5);
Hope somebody can help me figure this out,
Best regards,
Alex

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 3월 29일
편집: Ameer Hamza 2020년 3월 29일
Try this:
clc;
close all;
rng('default');
datapoints{1} = exprnd(1 , [5,1]);
datapoints{2} = exprnd(1 , [50,1]);
datapoints{3} = exprnd(1 , [500,1]);
datapoints{4} = exprnd(1 , [5000,1]);
for i=1:numel(datapoints)
ax = subplot(2,2,i);
histogram(datapoints{i});
dist = fitdist(datapoints{i}, 'Exponential');
x_points = linspace(0, ax.XLim(2), 100);
Pdf = pdf(dist, x_points);
Cdf = cdf(dist, x_points);
yyaxis right
hold on
plot(x_points, Pdf, 'r', 'LineWidth', 2, 'DisplayName', 'PDF');
plot(x_points, Cdf, 'b', 'LineWidth', 2, 'DisplayName', 'CDF');
legend
end
Result:

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by