Comment combiner 2 parcelles (ggplot) en une seule parcelle?
en utilisant R, est-il possible de placer 2 ggplot ensemble (c.-à-d. sur la même parcelle)? Je tiens à montrer une tendance à partir de 2 différentes trames de données et au lieu de les mettre l'un à côté de l'autre, j'aimerais intégrer l'ensemble dans un complot et qu'à changer la couleur de l'un d'eux (le point noir).
Pour être plus précis, j'ai les 2 visuels:
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 avoir besoin de changer l'un d'eux à quelque chose de différent):
et
3 réponses
la création d'un simple graphique combiné avec vos données actuelles ressemblerait à quelque chose comme 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 alors ggplot sera automatiquement vous donner une légende, et en général le code semble 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 fournir ce pour nous)
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 ajuster les couleurs etc. au goût.
il suffit de les combiner. Je pense que cela devrait fonctionner, mais il est non 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)