我有下一张图:
h=历史拟合(myVec(;set(gca,'XLim',[-2 2](;ylim([0400](;集合(h(2(,"颜色","黑色"(;
%myVec还包含负值
如何将此绘图更改为以百分比而非计数的Y轴绘图?太感谢你了!
遗憾的是,默认情况下histfit
没有该选项。相反,您可以组合histogram
、fitdist
和pdf
来获得您想要的内容。
首先,用histogram
绘制数据,并将其归一化为观察概率(与百分比相同(。将垃圾箱nbins
的数量设置为您需要的任何数量。
nbins = 10;
h = histogram(yourData, nbins, 'Normalization', 'Probability');
hold on
然后使用fitdist
根据您的数据生成选择分布。这里我使用的是正态分布。
% yourData needs to be a column vector
pd = fitdist(yourData(:), 'Normal');
为每个点X生成此分布的Y值。将X设置为所需的任意值。然后将Y值归一化为Y值的总和(相当于转换为百分比(,并将其绘制在直方图的顶部。
x = -2:0.1:2;
y = pdf(pd, x);
y = y / sum( pdf(pd, x) );
plot(x, y, 'k--') % Plot distribution as a black dashed line