How to same size of plot and histogram
조회 수: 7 (최근 30일)
이전 댓글 표시
I want to compare my function with given parameters with my histogram with generated random numbers.
So, I want to put these two plots in one figure. But my histogram is on the y-axis much more bigger (around 250) than my fplot (around 2). How can I put them in the same size and compare them? I want to see if my histogram has the same shape as my function.
clear all;
clf
n=1000
t0 = 0.5;
T_A = 1;
b_A = 2;
fun_A2p = @(x) (b_A/T_A).*(x/T_A).^(b_A-1).*(exp(-(x/T_A).^(b_A)));
fun_A3p = @(x) (b_A/(T_A-t0)).*((x-t0)/(T_A-t0)).^(b_A-1).*(exp(-((x-t0)/(T_A-t0)).^(b_A)));
fplot(fun_A2p,[0,10], 'LineWidth',2, "Color", 'b')
hold on
fplot(fun_A3p,[0,10], 'LineWidth',2, "Color", 'r', 'LineStyle', '--')
hold on
for v_T = 1:length(T_A)
for v_b = 1:length(b_A)
data2p(:,v_b,v_T) = wblrnd(v_T,v_b, [n,1]);
data3p(:,v_b,v_T) = wblrnd(v_T,v_b, [n,1]) + t0;
end
end
h1= histogram(data2p);
hold on;
h2= histogram(data3p);
set(h1,'FaceColor',[0 0 1],'EdgeColor',[0 0 1],'facealpha',0.5);
set(h2,'FaceColor',[1 0 0],'EdgeColor',[1 0 0],'facealpha',0.5);
ax = gca;
ax.XLim=[0,5];
ax.YLim=[0,300];
grid on; %Gitter anzeigen
box on; %Rahmen zeigen
title ('Vergleich Dichtefunktion mit Histogram');
xlabel('Lebensdauer t');
ylabel('Dichtefunktion f(x)');
legend('2 parametrisch', '3 parametrisch')
댓글 수: 0
채택된 답변
the cyclist
2020년 9월 21일
I think that using
h1= histogram(data2p,'Normalization','pdf');
h2= histogram(data3p,'Normalization','pdf');
and of course removing
ax.YLim=[0,300];
will get you much closer to what you want.
You could also just use the histcounts function to get the counts, and then the bar function to plot them (applying whatever normalization factor you want).
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Histograms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!