En utilisant R, est-il possible de placer 2 ggplot ensemble (c'est-à-dire sur la même parcelle)? Je souhaite montrer une tendance à partir de 2 trames de données différentes et au lieu de les mettre côte à côte, j'aimerais les intégrer ensemble dans un même tracé et ne changer que la couleur de l'un d'entre eux (le point noir).
Pour être plus précis, j'ai les 2 visuels suivants:
ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="blue", colour="darkblue", size=1)
et
ggplot(visual2, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="red", colour="red", size=1)
Ils ressemblent à ceci (les deux ont des points noirs et je vais devoir changer l’un d’eux en quelque chose de différent):
et
Créer un seul tracé combiné avec votre configuration de données actuelle ressemblerait à ceci:
p <- ggplot() +
# blue plot
geom_point(data=visual1, aes(x=ISSUE_DATE, y=COUNTED)) +
geom_smooth(data=visual1, aes(x=ISSUE_DATE, y=COUNTED), fill="blue",
colour="darkblue", size=1) +
# red plot
geom_point(data=visual2, aes(x=ISSUE_DATE, y=COUNTED)) +
geom_smooth(data=visual2, aes(x=ISSUE_DATE, y=COUNTED), fill="red",
colour="red", size=1)
cependant, si vous pouvez combiner les ensembles de données avant de tracer, ggplot vous donnera automatiquement une légende, et en général, le code sera un peu plus propre.
visual1$group <- 1
visual2$group <- 2
visual12 <- rbind(visual1, visual2)
p <- ggplot(visual12, aes(x=ISSUE_DATE, y=COUNTED, group=group, col=group, fill=group)) +
geom_point() +
geom_smooth(size=1)
Données factices (vous devez nous les fournir)
visual1 = data.frame(ISSUE_DATE=runif(100,2006,2008),COUNTED=runif(100,0,50))
visual2 = data.frame(ISSUE_DATE=runif(100,2006,2008),COUNTED=runif(100,0,50))
combiner:
visuals = rbind(visual1,visual2)
visuals$vis=c(rep("visual1",100),rep("visual2",100)) # 100 points of each flavour
Maintenant faire:
ggplot(visuals, aes(ISSUE_DATE,COUNTED,group=vis,col=vis)) +
geom_point() + geom_smooth()
et ajustez les couleurs, etc. au goût.
Il suffit de les combiner. Je pense que cela devrait marcher mais ça n'a pas été testé:
p <- ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() +
geom_smooth(fill="blue", colour="darkblue", size=1)
p <- p + geom_point(data=visual2, aes(ISSUE_DATE,COUNTED)) +
geom_smooth(data=visual2, fill="red", colour="red", size=1)
print(p)