matlab画正态分布曲线

请问有两组数据,想用Matlab分别画正态分布曲线,但要画在同一个坐标系中,该怎么画呢?希望能提供详细代码。谢谢了。

hold on,然后画图,不需要继续画在同一坐标系的时候,输入hold off追问

您好,我hold on,但是做完后只能看见第二组数据的图,而且坐标轴都变成乱码了。见下图。

追答

把你的代码粘贴上来我看下,从图上看两次画图你都定义了坐标轴刻度和注释

追问

您好,代码如下:

追答[mu1,sigma1]=normfit(data1);
[y1,x1]=hist(data1,35);
ezplot(@(x1)normpdf(x1,mu1,sigma1))
hold on
[mu2,sigma2]=normfit(data2);
[y2,x2]=hist(data2,35);
ezplot(@(x2)normpdf(x2,mu2,sigma2))
title('');
xlabel('x');

出现乱码主要是xlim对坐标轴刻度重复设置了两次,两个正态分布的变量mu和sigma会有冲突,所以分别定义成mu1、sigma1和mu2、sigma2了,图像标题是按照最后一个画的图形输出的,所以我给去掉了,如果需要的话可以用title这个函数添加

追问

谢谢,但是,怎么把两条曲线画成不同颜色呢?

追答[mu1,sigma1]=normfit(data1);
[y1,x1]=hist(data1,35);
f1=ezplot(@(x1)normpdf(x1,mu1,sigma1))
set(f1,'color','b');
hold on
data2=rand(100,1);
[mu2,sigma2]=normfit(data2);
[y2,x2]=hist(data2,35);
f2=ezplot(@(x2)normpdf(x2,mu2,sigma2))
set(f2,'color','r');
title('');
xlabel('x');

用set可以设置曲线的颜色、粗细、类型等等属性

追问

谢谢了,现在出来的图纵坐标范围是0到1,我先用百分比表示,就是把范围变成0到100,怎么做呢?还有,怎么改变坐标轴的粗细呢?

追答

末尾加上这一句

set(gca,'Xtick',0:0.1:1,'XtickLabel',0:10:100,'LineWidth',3)

[mu1,sigma1]=normfit(data1);
[y1,x1]=hist(data1,35);
f1=ezplot(@(x1)normpdf(x1,mu1,sigma1))
set(f1,'color','b');
hold on
[mu2,sigma2]=normfit(data2);
[y2,x2]=hist(data2,35);
f2=ezplot(@(x2)normpdf(x2,mu2,sigma2))
set(f2,'color','r');
title('');
xlabel('x');
set(gca,'Xtick',0:0.1:1,'XtickLabel',0:10:100,'LineWidth',3)

追问

非常感谢!高手!

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答