sigma=1
u=c(-2,0,2)
#计算和绘图
x=seq(-6,6,0.1)
t1=t2=list()
for(i in 1:3){
t1[[i]]=dnorm(x,u[i],sigma)
t2[[i]]=pnorm(x,u[i],sigma)
}
par(mar=c(2,2,2,1))
plot(x,t1[[1]],xlim=c(-6,6),type="l",lty=2,col=2) #概率分布图
lines(x,t1[[2]])
lines(x,t1[[3]],col=4,lty=3)
text(u,0.35,paste("u=",u,sep=""),col=c(2,1,4))
plot(x,t2[[1]],xlim=c(-6,6),type="l",lty=2,col=2) #累计分布图
lines(x,t2[[2]])
lines(x,t2[[3]],col=4,lty=3)
text(u,0.5,paste("u=",u,sep=""),col=c(2,1,4))
如果只是画图,用curve()函数就好了画正态密度:curve(dnorm,xlim=c(-3,3),col=2)xlim是控制x轴显示从哪儿到哪儿,col是控制曲线颜***画指数密度:curve(dexp(x,rate=1),xlim=c(0,5))画指数分布:curve(pexp(x,rate=1),xlim=c(0,5))你的方法是生成很多点x=seq(-6,6,0.1)逐一算出函数值t1[[i]]=dnorm(x,u[i],sigma) t2[[i]]=pnorm(x,u[i],sigma)最后在plot出来,用type="l"和lty=2的虚线弄出来。curve这些功能都可以做到。curve(dexp(x,rate=1),xlim=c(0,5),lty=2,add=T)就有虚线,add=T可以一图多线