2017-01-13 3 views
3

を考えてみていないことをgeom_smoothに凡例を追加します。は以下のAES美的コール

library(ggplot2) 

ggplot(mtcars, aes(disp, mpg)) + 
    geom_point(aes(color = factor(cyl))) + 
    geom_smooth(aes(color = factor(cyl)), se = FALSE, method = "lm") + 
    geom_smooth(se = FALSE, method = "lm", fullrange = TRUE, color = "black") 

Plot

それは黒い線のスケールや凡例を追加することは可能ですか?ような何か:すべてのデータの凡例をして0​​色の伝説から分離することができ

p <- ggplot(mtcars, aes(disp, mpg)) + 
    geom_point(aes(color = factor(cyl)), show.legend = FALSE) + 
    geom_smooth(aes(color = factor(cyl)), se = FALSE, method = "lm") + 
    geom_smooth(se = FALSE, method = "lm", fullrange = TRUE, 
       aes(color = "all data")) + 
    scale_color_manual(values = c(scales::hue_pal()(3), "black")) 
print(p) 

plot

+1

あなたが何かの代わりに、カラー外AESを設定し、例えば、AES(色= "すべてのデータ")をマッピングする必要があります。 – Roland

答えて

5

ただ、二geom_smooth()の呼び出しで別のaesマッピングを追加scale_fill_identityでの次のトリックは、colorの代わりにfillを使用して、データgeom_smooth

ggplot(mtcars, aes(disp, mpg, color = factor(cyl))) + 
    geom_point() + 
    geom_smooth(se = FALSE, method = "lm") + 
    geom_smooth(data=mtcars, aes(disp, mpg, fill = 'black'), se = FALSE, method = "lm", color='black') + 
    scale_fill_identity(name = '', guide = 'legend',labels = c('all data')) 

enter image description here

+0

完璧 - それを考えていた。 – JasonAizkalns

2

Desired Results