studio - superponer graficas en r ggplot
Genera gráficos de barras apiladas emparejadas en ggplot(usando position_dodge solo en algunas variables) (1)
Una solución sería poner la interacción de la sample
y el name
en el eje x y luego ajustar las etiquetas para el eje x. El problema es que las barras no se ponen cerca la una de la otra.
ggplot(df, aes(x = as.numeric(interaction(sample,name)), y = count, fill = type)) +
geom_bar(stat = "identity",color="white") +
scale_x_continuous(breaks=c(1.5,3.5,5.5),labels=c("oak","birch","cedar"))
Otra solución es usar facetas para name
y sample
como valores de x.
ggplot(df,aes(x=sample,y=count,fill=type))+
geom_bar(stat = "identity",color="white")+
facet_wrap(~name,nrow=1)
Espero usar ggplot2
para generar un conjunto de barras apiladas en pares, muy parecido a esto:
Con los siguientes datos de ejemplo:
df <- expand.grid(name = c("oak","birch","cedar"),
sample = c("one","two"),
type = c("sapling","adult","dead"))
df$count <- sample(5:200, size = nrow(df), replace = T)
Me gustaría que el eje x representara el nombre del árbol, con dos barras por especie de árbol: una barra para la muestra uno y una barra para la muestra dos. Entonces los colores de cada barra deberían estar determinados por tipo.
El siguiente código genera la barra apilada con colores por tipo:
ggplot(df, aes(x = name, y = count, fill = type)) + geom_bar(stat = "identity")
Y el siguiente código genera las barras esquivadas por muestra:
ggplot(df, aes(x = name, y = count, group = sample)) + geom_bar(stat = "identity", position = "dodge")
Pero no puedo evitar esquivar uno de los grupos (muestra) y apilar el otro agrupamiento (tipo):
ggplot(df, aes(x = name, y = count, fill = type, group = sample)) + geom_bar(stat = "identity", position = "dodge")