2015-12-10 140 views
0

我想爲線性模型顯示95%和68%的陰影置信區間。另外,我想展示x1,95%CI和68%CI的相關傳說。但是,我得到了一系列的時間間隔。ggplot geosmooth傳說R

這裏是我的數據

YEAR 2004 2005 2006 2007 2008 
x1 -0.1 -1.8 -1.3 -1 -1.3 

到目前爲止的代碼:

library(ggplot2) 

data=read.csv(file.choose()) 

s1=ggplot(data,aes (x = YEAR, y = x1)) 

p <- 
s1+                      
    geom_smooth(method="lm",color="black",aes(alpha=0.05),show.legend=TRUE)+ 
    geom_smooth(method="lm",color="black",aes(alpha=0.32),show.legend=TRUE)+         
    scale_color_discrete(name='')+ 
    geom_point(size=5.5)+ 
    geom_line(linetype="dotted",size=2)+  
    xlab("Year")+                   
    ylab("x1")+ 
    guides(alpha = guide_legend(nrow = 16))+ 
    annotate("text", x = 2007.4, y = 2, label = "Test",face="bold",size=16)+    
    geom_hline(linetype="dashed",aes(yintercept=0)) 
p  

而我所得到的是這樣的: And what I get is this:

+1

請,請仔細閱讀說明文字:「**'level' **:置信區間的級別使用(0.95默認)。」 – Henrik

回答

1

實例數據

data <- data.frame(YEAR = 2004:2008, 
        x1 = c(0, -2, -1.5, -1, -1.5)) 

製作圖

  • 我們使用level來表示置信區間。
  • 我們可以在aes的內部使用fill來表示我們想爲關卡製作一個圖例。
  • 我呆在你的黑色和白色。
  • 我擺脫了一些混亂的代碼。
  • yintercept = 0應該在aes之外,因爲它是一個靜態值。

繪製代碼:

ggplot(data,aes (x = YEAR, y = x1)) + 
    geom_smooth(method = "lm", aes(fill = "68%"), level = 0.68, col = 1) + 
    geom_smooth(method = "lm", aes(fill = "95%"), level = 0.95, col = 1) + 
    geom_point(size = 5.5) + 
    geom_line(linetype = "dotted", size = 2) + 
    geom_hline(linetype = "dashed", yintercept = 0) + 
    xlab("Year") + 
    scale_fill_grey(name = 'Confidence\n level') + 
    theme_classic() 

結果

enter image description here

+0

謝謝!我非常感謝你的幫助@Axeman – user5655295