2012-02-10 88 views
19

我需要在scatterplot中的每個點上繪製兩個錯誤條。通常情況下垂直誤差線對應於點y值的誤差,但我需要添加與X軸(水平線)相關的誤差線。我可以用一些abline命令來做到這一點,但是認爲用ggplot2可能有更聰明的方法來做到這一點?ggplot2:向scatterplot中的每個點添加兩個錯誤條

+2

我相信有一個'geom_errorbarh'這需要'x',' xmin'和'xmax'類似於'geom_errorbar'。 – joran 2012-02-10 17:08:48

+0

http://permalink.gmane.org/gmane.comp.lang.r.ggplot2/3231 – 2012-02-10 17:09:13

回答

28

剛剛完成的緣故,在我的評論跟進,這裏是一個簡單的(雖然醜陋)例如:

df <- data.frame(x = 1:10, 
       y = 1:10, 
       ymin = (1:10) - runif(10), 
       ymax = (1:10) + runif(10), 
       xmin = (1:10) - runif(10), 
       xmax = (1:10) + runif(10)) 

ggplot(data = df,aes(x = x,y = y)) + 
    geom_point() + 
    geom_errorbar(aes(ymin = ymin,ymax = ymax)) + 
    geom_errorbarh(aes(xmin = xmin,xmax = xmax)) 

enter image description here

+4

非常感謝您的回覆!我花了一些時間用我自己的數據重現結果,因爲在我的數據中,列沒有命名爲「x」和「y」,這顯然意味着對於geom_errorbar,您需要傳遞x座標,即: geom_errorbar(aes(x = var,ymin = ...))和geom_errorbarh都是x和y,所以:geom_errorbarh(aes(x = var1,y = var2,xmin = ...))。水平geom_errorbarh的最後一個細節似乎沒有記錄在幫助文件中,我必須從我得到的錯誤消息中推斷出來。 – 2012-02-13 10:46:59

+1

對不起,我看到你在第一次調用ggplot時定義了x和y,這就是我應該做的。再次感謝。 – 2012-02-13 10:50:06

相關問題