Tengo algunos datos que estoy usando para trazar un histograma. También tengo dos conjuntos de umbrales que tienen cierta importancia.¿Agregar vline a la gráfica existente y hacer que aparezca en la leyenda ggplot2?
Puedo trazar el histograma y las vlines con los estilos apropiados. Sin embargo, no puedo hacer que mis vlines aparezcan en la leyenda. Creo que algo así debería funcionar, sin embargo, los elementos de la leyenda nunca se muestran.
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)
Alternativamente, si construyo un hoja.de.datos para mis cortes y hacer un mapeo bien estructurado, que esté en mis vlines a aparecer en la leyenda. Por desgracia, la leyenda me da dos ejemplos de los diferentes tipos de líneas superpuestas unas sobre otras:
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)
Así que, al final, lo que estoy buscando, es la forma más sencilla de forma manual agregue dos conjuntos de líneas a un gráfico, y luego haga que aparezcan correctamente en la leyenda.