J'ai essayé d'aligner différents graphiques obtenus en utilisant geom_bar. Quand je cours chaque parcelle une par une, cela fonctionne bien. J'ai ce que je veux. Mais quand j'agrègent tous dans un complot multiple, j'ai toujours le même ....La combinaison de ggplots efface le tracé d'origine?
Pour être clair: c'est la première parcelle qui est bon: enter image description here
Voici ce que je suis quand je combiner les deux parcelles. La première colonne doit être la même que la courbe ci-dessus ...: enter image description here
Je ne trouve pas le problème. Ceci est mon script:
##### colonne 6
i=6
col=compil[,i]
nom=names(compil[i])
maxi = max(col)
mini = min(col)
p5 <- ggplot(compil,aes(x=NIVEAU, y=col)) +
geom_bar(stat="identity",position = "identity",aes(width=0.85),
fill=ifelse(col > 1, rgb(63,202,20, maxColorValue = 255),
ifelse (col< -1,rgb(204,0,0, maxColorValue = 255),
rgb(160,160,160, maxColorValue=255)))) +
geom_hline(yintercept=0,color=rgb(160,160,160, maxColorValue=255))+
coord_flip(ylim=c(-2.5,2.5)) +
labs(x="", y="", title= nom) + guides(fill=F) +
theme(panel.grid.major=element_blank(), panel.grid.minor.x=element_blank(),
panel.background = element_blank(), axis.text.x=element_blank(),
axis.ticks = element_blank(),axis.line= element_blank(),
plot.margin=unit(c(1,-1,1,-1),"lines"), plot.title = element_text(size=10))
print(p5)
##### colonne 7
i=7
col=compil[,i]
nom=names(compil[i])
maxi = max(col)
mini = min(col)
p6 <- ggplot(compil,aes(x=NIVEAU, y=col)) +
geom_bar(stat="identity",position = "identity",aes(width=0.85),
fill=ifelse(col > 1, rgb(63,202,20, maxColorValue = 255),
ifelse (col< -1,rgb(204,0,0, maxColorValue = 255),
rgb(160,160,160, maxColorValue=255)))) +
geom_hline(yintercept=0,color=rgb(160,160,160, maxColorValue=255))+
coord_flip(ylim=c(-2.5,2.5)) +
labs(x="", y="", title= nom) + guides(fill=F) +
theme(panel.grid.major=element_blank(), panel.grid.minor.x=element_blank(),
panel.background = element_blank(), axis.text=element_blank(),
axis.ticks = element_blank(),axis.line= element_blank(),
plot.margin=unit(c(1,-1,1,-1),"lines"), plot.title = element_text(size=10))
print(p6)
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 3)))
print(p5, vp = vplayout(1, 1:2))
print(p6, vp = vplayout(1, 3))
Si quelqu'un pouvait m'aider à trouver l'erreur, j'apprécie vraiment !! Bien sûr, je fais quelque chose de mal mais quoi ?? Merci d'avance pour votre temps et votre aide!
il pourrait être dû à 'eval paresseux de ggplot' et vous changer le même ensemble de valeurs pour chaque parcelle, mais il est difficile de dire sans quelques exemples de données. peut-être renommer les variables de la colonne 7 de sorte que les noms soient uniques à ceux de la colonne 6 – Nate
Pour tester la suggestion de @DayDay, essayez d'imprimer p5 après avoir généré p6. –
Je pensais faire une boucle car c'est pourquoi j'ai gardé le même nom ... mais tu as raison: j'étais trop paresseux aussi! En renommant toutes les variables comme l'a dit @Nathan Day, il fonctionne maintenant comme expexted! Merci beaucoup! – Sandrine