Удалить вертикальную линию в легенде, вызванную geom_vline в ggplot - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь исправить легенду, чтобы не было креста, вызванного geom_vline в ggplot. Я знаю, что мой пример не имеет большого смысла как сюжет, но я просто хотел быстро воспроизвести пример.

library(ggplot2)
ggplot(diamonds)+
  geom_point(aes(x = carat, y = depth, colour = "depth"), pch = 4)+
  geom_line(aes(x = carat, y = table, colour = "table"))+
  geom_vline(aes(xintercept = 2, colour = "x = 2"))+
  guides(colour = guide_legend(override.aes = list(linetype=c(0,1,1), shape=c(4,NA,NA))))

Я знаю, что могу использовать guide_legend(override.aes = …), чтобы исправить мою проблему с точками и линиями, которые появляются на каждом элементе легенды, но это не работает для удаления вертикальной линии, созданной geom_vline()

Я нашел несколько вопросов в поисках решения (ниже), но все они, кажется, решают его, разделяя vline, используя разные значения aes (тип линии или цвета, используя fill). Есть ли способ, которым я могу сохранить colour aes, но при этом моя легенда не выглядит так?

R - объединение geom_vline и geom_smooth в легенде

Легенда, показывающая неожиданную черную линию с geom_vline

enter image description here

1 Ответ

0 голосов
/ 10 сентября 2018

Это, кажется, работает для этого примера. Не уверен насчет ваших фактических данных.

library(ggplot2)
ggplot(diamonds)+
  geom_point(aes(x = carat, y = depth, colour = "depth"), pch = 4)+
  geom_line(aes(x = carat, y = table, colour = "table"))+
  geom_vline(aes(xintercept = 2, colour = "x = 2"), show.legend = F)+
  guides(colour = guide_legend(override.aes = list(linetype=c(0,1,1), shape=c(4,NA,NA))))

Создано в 2018-09-09 по представ пакет (v0.2.0).

...