Comment ajouter des lignes différentes pour les facettes
j'ai des données où je regarde la différence de croissance entre une monoculture et une culture mixte pour deux espèces différentes. En outre, j'ai fait un graphique pour faire mes données claires.
je veux un barplot avec des barres d'erreur, l'ensemble des données est bien sûr plus grand, mais pour ce graphique c'est le data.frame
avec les moyens pour le barplot.
plant species means
Mixed culture Elytrigia 0.886625
Monoculture Elytrigia 1.022667
Monoculture Festuca 0.314375
Mixed culture Festuca 0.078125
Avec ces données, j'ai fait un graphique ggplot2
, où plant
est sur l'axe des x et means
sur l'axe des y, et j'ai utilisé une facette pour diviser l'espèce.
voici mon code:
limits <- aes(ymax = meansS$means + eS$se, ymin=meansS$means - eS$se)
dodge <- position_dodge(width=0.9)
myplot <- ggplot(data=meansS, aes(x=plant, y=means, fill=plant)) + facet_grid(. ~ species)
myplot <- myplot + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)
myplot <- myplot + scale_fill_manual(values=c("#6495ED","#FF7F50"))
myplot <- myplot + labs(x = "Plant treatment", y = "Shoot biomass (gr)")
myplot <- myplot + opts(title="Plant competition")
myplot <- myplot + opts(legend.position = "none")
myplot <- myplot + opts(panel.grid.minor=theme_blank(), panel.grid.major=theme_blank())
jusqu'à présent, c'est bien. Cependant, je voudrais ajouter deux lignes horizontales différentes dans les deux facettes. Pour cela, j'ai utilisé ce code:
hline.data <- data.frame(z = c(0.511,0.157), species = c("Elytrigia","Festuca"))
myplot <- myplot + geom_hline(aes(yintercept = z), hline.data)
cependant si je fais cela, j'obtiens un tracé où il y a deux facettes supplémentaires, où les deux lignes horizontales sont tracées. Au lieu de cela, je veux que les lignes horizontales soient tracées dans les facettes avec les barres, Pas de faire deux nouvelles facettes. Quelqu'un à une idée comment résoudre ce problème.
je pense que cela le rend plus clair si j'ai mis le graphique que je viens d'en créer un maintenant:
1 réponses
assurez-vous que les espèces variables sont identiques dans les deux ensembles de données. Si un facteur dans l'un d'eux, alors il doit être un facteur dans l'autre trop
library(ggplot2)
dummy1 <- expand.grid(X = factor(c("A", "B")), Y = rnorm(10))
dummy1$D <- rnorm(nrow(dummy1))
dummy2 <- data.frame(X = c("A", "B"), Z = c(1, 0))
ggplot(dummy1, aes(x = D, y = Y)) + geom_point() + facet_grid(~X) +
geom_hline(data = dummy2, aes(yintercept = Z))
dummy2$X <- factor(dummy2$X)
ggplot(dummy1, aes(x = D, y = Y)) + geom_point() + facet_grid(~X) +
geom_hline(data = dummy2, aes(yintercept = Z))