Ajouter une vline à un tracé existant et l'afficher dans la légende ggplot2?

J'ai des données que j'utilise pour tracer un histogramme. J'ai également deux ensembles de seuils qui ont une certaine importance.

Je suis capable de tracer l'histogramme et les vlines avec les styles appropriés. Cependant, je ne peux pas obtenir mon vlines à apparaître dans la légende. Je crois que quelque chose comme cela devrait fonctionner, cependant les éléments de la légende ne sont pas toujours d'affichage.

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)

Sinon, si je construis un ensemble de données.cadre pour mes coupes et de faire une esthétique de la cartographie, je peux obtenir mon vlines à apparaître dans la légende. Malheureusement, la légende donne-moi deux instances des différents types de lignes superposées les unes sur les autres:

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)

Ajouter une vline à un tracé existant et l'afficher dans la légende ggplot2?

Donc, en fin de compte, ce que je suis à la recherche, est la façon la plus simple pour ajouter manuellement des deux ensembles de lignes d'un terrain, puis de les afficher correctement dans la légende.

source d'informationauteur Peter