2015-05-01 52 views
2

我只是在gem_abline中定義ggplot時才顯示顏色和線型的圖例時遇到問題。ggplot2不顯示geom_abline中的功能的圖例

我在下面添加了一個非常簡單的例子。 它生成如圖所示的圖(無圖例)。

我也嘗試添加一個scale_color_manual的情節,但沒有出現這樣的伎倆。 有沒有人知道如何讓ggplot2顯示圖例?

library(ggplot2); 

xy_data = data.frame(x=runif(100, min=-0.5, max=0.5), 
         y=runif(100, min=-0.5, max=0.5)); 

slope_data = data.frame(slope = c(-1, -0.5, 0.5, 1.0), 
         model = paste0("m", seq(1,4)), 
         robust = rep(c("Robust", "Non-robust"), 2)) 

merged_data = merge(xy_data, slope_data) 

slope_plot = 
    ggplot()+ 
    geom_point(data=xy_data,  aes(x=x, y=y))+ 
    geom_abline(data=slope_data, aes(intercept=0, slope=slope, color=model, linetype=robust)) 

ggsave(plot=slope_plot, file="no_legend_slope_plot.png") 

Plot: notice missing legends for color and linestyle

回答

3

你可以試試:

slope_plot = ggplot() + 
    geom_point(data=xy_data, aes(x=x, y=y)) + 
    geom_abline(data=slope_data, aes(intercept=0, slope=slope, color=model, linetype=robust), show_guide=TRUE) 

enter image description here

+0

它的工作原理。有人知道爲什麼show_guide = T不是geom_abline的默認值嗎?這對我來說似乎是違反直覺的... – gvrocha

+0

我懷疑'geom_line'旁邊的所有行默認都帶有'show_guide = FALSE',但是你需要比我更聰明的人來了解背後的原因 – mucio