Добавить vline к существующему графику, и он появится в легенде ggplot2?

У меня есть некоторые данные, которые я использую для построения гистограммы. У меня также есть два набора порогов, которые имеют некоторое значение.

Я могу построить гистограмму и графики с соответствующими стилями. Тем не менее, я не могу заставить мои vlines показываться в легенде. Я полагаю, что что-то подобное должно работать, однако элементы легенды никогда не отображаются.

df <- data.frame(val=rnorm(300, 75, 10))

cuts1 <- c(43, 70, 90)
cuts2 <- c(46, 79, 86)

ggplot(data=df, aes(x=val)) +
  geom_histogram() +
  geom_vline(xintercept=cuts1,
             linetype=1,
             color="red",
             labels="Thresholds A",
             show_guide=TRUE) +
  geom_vline(xintercept=cuts2,
             linetype=2,
             color="green",
             labels="Thresholds B",
             show_guide=TRUE)

В качестве альтернативы, если я создаю data.frame для своих разрезов и выполняю эстетическое отображение, я могу заставить свои vlines отображаться в легенде. К сожалению, легенда дает мне два экземпляра различных типов линий, наложенных друг на друга:

cuts1 <- data.frame(Thresholds="Thresholds A", vals=c(43, 70, 90))
cuts2 <- data.frame(Thresholds="Thresholds B", vals=cuts2 <- c(46, 79, 86))

ggplot(data=df, aes(x=val)) +
  geom_histogram() +
  geom_vline(data=cuts1, aes(xintercept=vals, shape=Thresholds),
             linetype=1,
             color="red",
             labels="Thresholds A",
             show_guide=TRUE) +
  geom_vline(data=cuts2, aes(xintercept=vals, shape=Thresholds),
             linetype=2,
             color="green",
             labels="Thresholds B",
             show_guide=TRUE)

enter image description here

Итак, в конце концов, то, что я ищу, - это самый простой способ вручную добавить два набора линий на график, а затем правильно отобразить их в легенде.

Ответы на вопрос(1)

Ваш ответ на вопрос