R正态分布+ggplot

来源:互联网 发布:软件设计师报考条件 编辑:程序博客网 时间:2024/04/29 12:01
randNorm<-rnorm(3000)
##rnorm(3000)产生3000个正太分布数
randDensity<-dnorm(randNorm)
###dnorm(randNorm)求其密度函数值
ggplot(data.frame(x=randNorm,y=randDensity))+aes(x=x,y=y)+geom_point()+labs(x="Random Normal Varables",y="randDensity")
##将这个你太分分布数以及对应的密度函数值作为x,y轴的值,并绘制点图
p<-ggplot(data.frame(x=randNorm,y=randDensity))+aes(x=x,y=y)+geom_point()+labs(x="Random Normal Varables",y="randDensity")
##变量p作为该段代码的引用
 neg1Seq<-seq(from=min(randNorm),to=-1,by=0.1)
 ##生成一段序列,起始值为min(randNorm),末尾为to=-1,步长0.1
 lessThanNeg1<-data.frame(x=neg1Seq,y=dnorm(neg1Seq))
 ##将序列跟该段序列对应的密度函数值作为数据框元素
 lessThanNeg1<-rbind(c(min(random),0),lessThanNeg1,c(max(lessThanNeg1$x),0))
  ##将最小值,中间,最大值组成的行并数据框
p+geom_polygon(data=lessThanNeg1,aes(x=x,y=y))
##geom_polygon进行填充,将曲线部分跟x周之间进行填充
 randProb<-pnorm(randNorm)
 ##pnorm()分布函数
ggplot(data.frame(x=randNorm,y=randProb))+aes(x=x,y=y)+geom_point()+labs(x="Random Normal Varables",y="randDensity")
##绘制分布函数
##分布函数求积分为密度函数图形
0 0
原创粉丝点击