在ggplot2指南图例中包含手动添加的行

时间:2017-10-31 21:15:02

标签: r plot ggplot2

这个问题已被多次询问,我知道,但我仍然无法找到一个好的答案。我想得到一个漂亮的传说,在图上的单独图例中显示手动添加的线条。这是我到目前为止所知道的:

ReservationItems

给出:

enter image description here

手动添加了行,但没有传说条目。

尝试1

添加library(ggplot2) data(mtcars) ggplot(mtcars, aes(x=disp, y=mpg, color=factor(am))) + theme_bw() + geom_point() + geom_smooth(method = 'lm', se=FALSE) + geom_abline(aes(intercept=40, slope = (-1/10))) + geom_abline(aes(intercept=25, slope = (-1/30))) 并不是很有帮助:

show.legend=TRUE

enter image description here

尝试2

为每个额外的行添加一个人工ggplot(mtcars, aes(x=disp, y=mpg, color=factor(am))) + theme_bw() + geom_point() + geom_smooth(method = 'lm', se=FALSE) + geom_abline(aes(intercept=40, slope = (-1/10)), show.legend = TRUE) + geom_abline(aes(intercept=25, slope = (-1/30)), show.legend = TRUE) 也不是很有帮助:

fill

它只是发出警告并返回原始情节:

ggplot(mtcars, aes(x=disp, y=mpg, color=factor(am))) +
   theme_bw() + 
   geom_point() + 
   geom_smooth(method = 'lm', se=FALSE) + 
   geom_abline(aes(intercept=40, slope = (-1/10), fill='Comparison Line 1')) +
   geom_abline(aes(intercept=25, slope = (-1/30), fill='Comparison Line 2'))  

enter image description here

尝试3

添加Warning: Ignoring unknown aesthetics: fill Warning: Ignoring unknown aesthetics: fill 和假aes show.legend=TRUE会变得很近,但结果非常难看:

fill

enter image description here

最后,我的问题:
如何摆脱颜色图例中的对角线(标题为“factor(am)”),如何在填充图例(标题为“填充”)中的项目旁边显示正常的线条?

1 个答案:

答案 0 :(得分:2)

你非常接近! 添加与geom_abline相关的虚拟变量,例如sizeaes()。并使用size缩放scale_size_manual

library(ggplot2)
ggplot(mtcars, aes(x=disp, y=mpg, color=factor(am))) +
   theme_bw() + 
   geom_point() + 
   geom_smooth(method = 'lm', se=FALSE) + 
   geom_abline(aes(intercept=40, slope = (-1/10), size='Comparison Line 1')) +
   geom_abline(aes(intercept=25, slope = (-1/30), size='Comparison Line 2')) +
   scale_size_manual(values = c(0.3, 0.3))

enter image description here

PS。:你正在使用的填充是abline的未知美学(ggplot2警告你:Warning: Ignoring unknown aesthetics: fill)。