studio - Cómo agregar diferentes líneas para las facetas
r plot scale (1)
Asegúrese de que la especie variable sea idéntica en ambos conjuntos de datos. Si es un factor en uno de ellos, entonces debe ser un factor en el otro también
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))
Tengo datos donde veo la diferencia en el crecimiento entre un monocultivo y una cultura mixta para dos especies diferentes. Además, hice un gráfico para aclarar mis datos.
Quiero una barra de barras con barras de error, todo el conjunto de datos es, por supuesto, más grande, pero para este gráfico este es el data.frame
con los medios para la barra de representación.
plant species means
Mixed culture Elytrigia 0.886625
Monoculture Elytrigia 1.022667
Monoculture Festuca 0.314375
Mixed culture Festuca 0.078125
Con estos datos hice un gráfico en ggplot2
, donde la plant
está en el eje x y means
en el eje y, y usé una faceta para dividir la especie.
Este es mi código:
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())
Hasta ahora está bien. Sin embargo, quiero agregar dos líneas horizontales diferentes en las dos facetas. Para eso, utilicé este código:
hline.data <- data.frame(z = c(0.511,0.157), species = c("Elytrigia","Festuca"))
myplot <- myplot + geom_hline(aes(yintercept = z), hline.data)
Sin embargo, si hago eso, obtengo un diagrama donde hay dos facetas extra, donde se trazan las dos líneas horizontales. En cambio, quiero que las líneas horizontales se tracen en las facetas con las barras, no para hacer dos facetas nuevas. Alguien una idea de cómo resolver esto.
Creo que lo hace más claro si pongo el gráfico que creo ahora: