Matlab提供了hist()函数,来方便的产生直方图。只要知道了理论pdf,那么同时画出pdf和直方图就很简单了。
现在以高斯分布为例,来演示如何同时画出pdf和直方图。
归一化高斯概率分布函数如下:
Matlab中直接对应的高斯随机数产生器为randn()。
具体步骤如下:用randn()来产生一组随机序列。产生直方图用数学公式来产生高斯概率分布pdf将2和3的结果做图显示。参考如下例程:
%========================
x = -4:05:4; %直方图的范围
y = randn(10000,1);%产生一组随机序列,10000个。
t = -4:001:4;
pdf = length(y)05exp(-t^2/2)/sqrt(2pi);%产生高斯概率分布pdf
hist(y,x);%画出直方图
hold on;
plot(t,pdf,'r')%画出高斯概率分布函数
%========================
结果如下:
origin画图:柱形图添加正态分布曲线的方法:
1、打开柱形图,在图形上双击鼠标左键。
2、双击后d出图示对话框,点击图示左侧菜单的“Sheet1”选项。
3、点击对话框右侧菜单中的“Data”选项。
4、进入“Data”菜单后,将“Type”后的选项修改为“Normed”。
5、设置完成后点击对话框下方的“OK”按钮。
6、柱形图添加正态分布完成,出现图示的正态图形。
1、首先在曲线上或检视器上点击,即可添加控制点ControlPoint(也称锚点AnchorPoint)。2、其次按住Shift键后再点击以添加锚点,则不会改动曲线。在锚点上右击,删除锚点。
3、最后自定义曲线可在调板设置()菜单中,选择“可编辑的样条线”EditableSplines来启用样条线,这样,激活的锚点将多出两个手柄,以便于更精准、平滑地控制。以上就是达芬奇曲线直方图调出来的方式。
能画直方图,意味着已经有了y值,可以直接plot(y)。
如果用插值的话,曲线会更光滑一点。
看下面图2和图3的差别。
clc; clear; close all;y1 = abs(randn(20,1));
figure,bar(y1);
axis([0 20 -inf inf]);
figure,plot(y1); % 图2是直接绘制出的曲线
axis([0 20 -inf inf]);
x = 1:(length(y1)-1)/1000:length(y1);
y2 = interp1(1:length(y1), y1, x, 'spline'); % 在区间[1,length(y1)]做样条插值(间隔一千分之一),即插值出1001个点
figure;
plot(x,y2);
axis([0 20 -inf inf]);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)