2012-05-09 18 views
1

我有一個小的數據框,我正在繪製3列以顯示風險評估和95%置信區間。現在我將這3組向量顯示爲點,但我想用「段」連接它們。R:使用「segment」命令在繪製點之間放置垂直線

這裏是正在繪製的數據幀的樣本:

     Diagnosis age.group X..change X..lower X..upper 
1     Dysrythmia All adults  16  0  35 
2     Heart failure All adults  -4  -20  14 
3      Asthma All adults  10  -5  28 

這裏是我的陰謀代碼:

plot(dt[,4], pch="-", ylim=c(-20, 50), axes=F, ann=F, cex=1.5) 
abline(h=0, col=1, lty=2) 
points(dt[,3], pch=16, col="black", bg="black") 
points(dt[,5], pch="-", cex=1.5) 
axis(1, at=1:10, lab=dt[,1], las=3, lwd=0, cex.axis=0.7, pos=-22) 
axis(2, at=5*-20:54, las=1, cex.axis=0.7, cex.lab=0.7, col=1) 
title(main="Risk estimates: All Adults", col.main="black", font.main=1) 
title(ylab="Increase in risk (%)", col.lab=rgb(0,0.5,0)) 
box() 

的點估計和破折號是置信區間。我想爲每個診斷連接這三點。我查看了R符號,但它並不能幫助我弄清楚如何告訴R哪個xy「座標」要繪製連接的線段,因爲我在這裏使用了矢量而不是數值?任何人都可以幫助編寫一段代碼段嗎?謝謝

+0

有關添加線(DT [3],PCH = 16,什麼山坳= 「黑」,BG = 「黑色」)?或者它必須是「細分」? – Julius

+0

你可能想看看使用GGPLOT。它允許你很容易地創建CI線/誤差線: [R cookbook/ggplot2](http://wiki.stdout.org/rcookbook/Graphs/Plotting%20means%20and%20error%20bars%20%28ggplot2%29 /) –

回答

1

好的,所以你基本上想繪製CI。箭頭命令可能對你想要的更好。下面是一個簡單的例子,它與您對較低CI的內容有效。

plot(dt[,3], pch="•", ylim=c(-20, 50), axes=F, ann=F, cex=1.5, bty = 'o') 
abline(h=0, col=1, lty=2) 
arrows(1:3, dt[,3], 1:3, dt[,4], angle = 90, length = 0.08) 

因此,您可以省略額外點命令和任何新的段命令。它更加簡潔。

但是,如果你堅持添加段你所擁有的只是......

segments(1:3, dt[,3], 1:3, dt[,5]) 
segments(1:3, dt[,3], 1:3, dt[,4]) 
+0

如果John的'segments'方法可以,那麼爲什麼不用'for(k in 1:nrows(dt))lines(dt [k,3:5])'? –