Может ли ggplot2 контролировать размер точки и размер линии (вес линии) отдельно в одной легенде?
Пример использованияggplot2
построить график групп точек данных и линий, соединяющих средства для каждой группы, сопоставленных сaes
заshape
и дляlinetype
:
p <- ggplot(mtcars, aes(gear, mpg, shape = factor(cyl), linetype = factor(cyl))) +
geom_point(size = 2) +
stat_summary(fun.y = mean, geom = "line", size = 1) +
scale_shape_manual(values = c(1, 4, 19))
проблема что точечные символы в легенде кажутся слишком маленькими, чтобы их можно было увидеть по сравнению с линейными символами:
Пытаясьувеличить размер точки в легенде также увеличивает вес линии, так что это не полезно здесь.
p1 <- p + guides(shape = guide_legend(override.aes = list(size = 4)))
Было бы неплохо, если бы вес линии отличался отsize
, Я пытался добавить
+ guides(linetype = guide_legend(override.aes = list(size = 1)))
который просто дает предупреждение.
> Warning message:
In guide_merge.legend(init, x[[i]]) : Duplicated override.aes is ignored.
Кажется, нет никакой разницы, если я переместитьlinetype
aes
снаружиggplot()
и вstat_summary()
, Если бы я хотел только точечные символы, я мог бы удалить линии из легендысюда.
p2 <- p + guides(shape = guide_legend(override.aes = list(size = 4, linetype = 0)))
Вместо этого (сохраняя маленькие точечные символы в самом графике) я хочуодин единственный легенда си то и другое символы большой точки, как на этом последнем изображенииа также тонкие линии символов, как на первом изображении. Есть ли способ сделать это?