Добавить 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)
Итак, в конце концов, то, что я ищу, - это самый простой способ вручную добавить два набора линий на график, а затем правильно отобразить их в легенде.