2013-04-03 309 views
1

我有一個簡單數據幀:如何將圖例添加到ggplot2折線圖?

> ih 
    year y1 y2 
1 2005 4.50 4.92 
2 2006 4.89 6.21 
3 2007 6.63 6.68 
4 2008 4.89 4.60 
5 2009 16.56 15.16 
6 2010 17.98 17.73 
7 2011 25.92 19.85

而且我想曲線圖與年的線圖上的x軸和y1和y2爲兩個單獨的線,黑色和具有不同的行類型。我怎樣才能得到一個表明y1代表「Bob」而y2代表「Susan」的傳奇?

這裏是我的嘗試,它產生下面的圖(無圖例):

ggplot(ih, aes(x = year)) + geom_line(aes(y=y1), linetype="dashed") + 
    geom_line(aes(y=y2)) + 
    labs(x="Year", y="Percentage", fill="Data") + 
    geom_point(aes(y=y1)) + 
    geom_point(aes(y=y2)) 

enter image description here

感謝您的幫助!今天是我第一天使用R!

回答

5

您應該將數據和功能melt()從庫reshape2轉換爲長格式,例如,然後使用variableaes()定義linetype=。所以傳說將自動進行。要刪除圖例中的名稱variable,您可以添加scale_linetype("")

library(reshape2) 
ih.long<-melt(ih, id.vars="year") 

ih.long 
    year variable value 
1 2005  y1 4.50 
2 2006  y1 4.89 
3 2007  y1 6.63 
4 2008  y1 4.89 
5 2009  y1 16.56 
6 2010  y1 17.98 
.... 

ggplot(ih.long,aes(year,value,linetype=variable))+geom_line()+geom_point()+ 
    scale_linetype("") 

enter image description here

+0

我怎樣才能重新命名或者傳說中的「變量」,或者完全刪除嗎?謝謝! – SEL 2013-04-03 18:42:32

+1

@Sel一種方法是添加scale_linetype(「」)。更新了我的答案。 – 2013-04-03 18:45:34