2015-05-14 125 views
1

我已經很難搜索interwebs爲什麼我不能將圖例添加到我的ggplot2。ggplot2手動圖例不顯示

g.2plot1<-ggplot(input_csv,aes(x=R_OD_MONTH,y=DAMWAMT))+ 
geom_line(colour = "black")+ 
geom_line(aes(x=R_OD_MONTH,y = SCALED_PERCENT_MW), colour = "blue") + 
scale_colour_manual(name="Legend", values = c("black", "blue")) + 
scale_linetype_manual(name="Legend", values = c("dashed", "dotted")) 

g.2plot1 

當我這樣做時,我什麼都沒有,控制檯上沒有錯誤,也沒有任何圖例。請有人告訴我我的東西錯了嗎?

dput(head(input_csv)) 

structure(list(OD_MONTH = c("12/1/2010", "1/1/2011", "2/1/2011", 
"3/1/2011", "4/1/2011", "5/1/2011"), DAMWAMT = c(219869.89, 214323.24, 
193976.03, 249174.62, 213529.32, 226318.98), NB_MADE_WHOLE = c(39L, 
37L, 26L, 45L, 74L, 64L), NB_CONSID_MW = c(818L, 871L, 874L, 
831L, 1060L, 1418L), PERCENT_MW = c(0.0404, 0.048, 0.0371, 0.0616, 
0.0604, 0.0525), SCALED_PERCENT_MW = c(151898.635570388, 183223.057973301, 
138297.241632282, 239277.287536408, 234331.326104369, 201770.413343447 
), R_OD_MONTH = structure(c(14944, 14975, 15006, 15034, 15065, 
15095), class = "Date")), .Names = c("OD_MONTH", "DAMWAMT", "NB_MADE_WHOLE", 
"NB_CONSID_MW", "PERCENT_MW", "SCALED_PERCENT_MW", "R_OD_MONTH" 
), row.names = c(NA, 6L), class = "data.frame") 
+1

傳說是爲美學而繪製的。由於'colour'在你的情況下不是一種美學,所以沒有傳說。回答沒有數據的問題有點複雜。您能否發佈一些數據,例如發佈'dput(head(input_csv))'的輸出? – Stibu

+0

你能給出input_csv的前10行嗎?我們無法在沒有看到您的數據的情況下回答... –

+1

使用數據編輯的原始文章 – Austin

回答

2

傳說是爲美學而繪製的。由於colour在你的情況下不是一種美學,所以沒有傳說。訣竅是將數據從寬格式(其中每種類型的數據都有自己的列)轉換爲長格式(其中有一列指示數據類型和一列給出相應的值)。這是如下完成的:

library(reshape2) 
plot.data <- melt(input_csv, 
    id="R_OD_MONTH",measure=c("DAMWAMT","SCALED_PERCENT_MW")) 

melt返回長格式的數據幀與表示稱爲variable的數據類型,並與稱爲value的值的列的列。

現在你可以讓ggplot通過色彩映射列variable挑顏色:

ggplot(plot.data,aes(x=R_OD_MONTH,y=value,colour=variable)) + geom_line() + 
    labs(title="My plot",x="x-axis",y="y-axis",colour="colours") + 
    scale_colour_discrete(labels=c("this","that")) 

最後兩行顯示,你怎麼可以添加情節標題,更改軸標籤和圖例標題( labs()),並更改圖例中的標籤(scale_colour_discrete)。

+0

嗯,我想我會得到該計劃並以正確的方式進行。謝謝。現在我正在尋找一種方法來更改圖例中的標籤而不更改顏色,因爲默認選擇比我的手動方式更好:)。 – Austin

+0

我添加了代碼來更改標籤。 ggplot2起初可能看起來有點複雜(它對我來說......),但在我看來,它是在R中進行繪圖的最佳選擇。絕對值得花一些精力來正確地學習它。 [Cookbook for R](http://www.cookbook-r.com/Graphs/)是ggplot2上信息和示例的優秀資源。 – Stibu

+0

謝謝,我以爲我嘗試過,但顯然不是。它現在有效。 – Austin