[Edité pour que le code exécutable et deuxième approche]« dupliquer » élément de légende dans ggplot2 R
J'ai trouvé plusieurs liens qui semblent pertinentes here, here et here mais ne peut pas Je vais directement déterminer comment les appliquer à mon défi: J'ai un tracé de ligne créé avec ggplot2 qui utilise une trame de données incluant des intervalles de confiance supérieurs et inférieurs. Je veux qu'ils apparaissent simplement dans la légende comme "99% CI", pas séparément comme, disons, "CI supérieur" et "CI inférieur".
library(ggplot2)
library(reshape2)
gmm <- data.frame(x=runif(10), observed=runif(10), theoretical=runif(10),
upper=runif(10), lower=runif(10))
gmm.m <- melt(gmm, id="x")
p1 <- ggplot(data=gmm.m, aes(x, value, colour=variable)) + geom_line()
p1 <- p1 + scale_colour_manual(
values=c("black", "#F8766D", "#7DAF01", "#7DAF01"),
labels=c("Observed","Theoretical","99% Confidence Intervals",""))
La définition de la dernière étiquette de légende à la valeur vide "" est aussi proche que je viens de la trier. Donc, pour être clair, je veux que les deux CI apparaissent dans la même couleur sur l'intrigue, je ne veux pas qu'ils apparaissent comme des éléments de légende séparés.
Je soupçonne qu'une façon de le faire est de faire fondre les autres des variables tout en sautant « bas », et puis ajouter cette suite. Mais, en dehors de (personnellement) trouver cette approche inélégante (plus facile à dire "ajouter tout sauf masquer la légende pour celui-ci"), mes tentatives pour faire cela ont également échoué.
library(ggplot2)
library(reshape2)
gmm <- data.frame(x=runif(10), observed=runif(10), theoretical=runif(10), upper=runif(10))
gmm.m <- melt(gmm, id="x")
gmm.b <- data.frame(x=runif(10),variable='lower', value=runif(10))
p1 <- ggplot(data=gmm.m, aes(x, value, colour=variable)) + geom_line() + scale_colour_manual(values=c("black", "#F8766D", "#7DAF01"), labels=c("Observed","Theoretical","99% Confidence Intervals",""))
p1 <- p1 + geom_line(data=gmm.b, aes(x=x, y=value, legend=FALSE))
plot(p1)
Vous avez rendu la réponse très difficile en ne fournissant pas d'exemple reproductible. Mais si je devais deviner, je dirais que la réponse impliquerait d'utiliser à la fois l'esthétique des couleurs pour définir les étiquettes/légendes comme vous le souhaitez et d'utiliser l'esthétique du groupe pour assurer que chaque ligne est dessinée correctement. – joran
Espérons que les modifications rendent cela un peu plus facile à suivre. Désolé pour ça, je postais à la fin d'une longue et dure journée de codage. – user1600439