2013-02-28 92 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