2013-02-28 84 views
4

叠加侧身地块我有以下代码,在R.绘图中的R

x = c(rep(2,10),rep(4,10)) 
y1 = c(5.1,3,4.2,4.1,4.8,4.0,5,4.15,3,4.5) 
y2 = c(9.1,8,9.2,8.2,7,9.5,8.8,9.3,10,10.4) 
y = c(y1,y2) 
plot(x,y,pch=16,cex=0.9,xlim=c(0,6),ylim=c(0,13)) 

此代码生成用点的两个带的曲线图。我使用powerpoint在这些频段上覆盖了正常的曲线。我如何使用实际方法和sd值在R中绘制(绘制横向正常曲线)? 注意:我再说一遍,正常曲线不是图的一部分。上面的代码只是生成原始图。

enter image description here

回答

7

首先,计算平均值和标准偏差为y1y2

m1<-mean(y1) 
s1<-sd(y1) 
m2<-mean(y2) 
s2<-sd(y2) 

然后由包含y值作为数字序列(不是实际y1y2值更宽)的两个数据帧(为方便起见)。然后使用dnorm()计算x的密度值,并计算平均值和标准偏差值。然后添加24将值移位到所需的位置。

df1<-data.frame(yval=seq(1,7,0.1),xval=(dnorm(seq(1,7,0.1),m1,s1)+2)) 
df2<-data.frame(yval=seq(6,12,0.1),xval=(dnorm(seq(6,12,0.1),m2,s2)+4)) 

添加密度线功能lines()

plot(x,y,pch=16,cex=0.9,xlim=c(0,6),ylim=c(0,13)) 
with(df1,lines(xval,yval)) 
with(df2,lines(xval,yval)) 

enter image description here

+0

如果x轴是从约50至100和y轴是从约0到40000。然后,将曲线看起来像什么扁平线。这怎么可能在这个范围内完成? – CodeGuy 2013-03-01 17:06:24

+0

然后,您可以将dnorm(seq(1,7,0.1),m1,s1)的结果按某个常数或y的平均值进行多重播放。 – 2013-03-01 17:15:39

+0

谢谢。这样可行。 – CodeGuy 2013-03-01 17:17:21