Cómo agregar diferentes líneas para las facetas

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 diagtwig 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:

enter image description here

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)) 

enter image description here

 dummy2$X <- factor(dummy2$X) ggplot(dummy1, aes(x = D, y = Y)) + geom_point() + facet_grid(~X) + geom_hline(data = dummy2, aes(yintercept = Z)) 

enter image description here