Tengo un problema con geom_bars en el que las barras no se representan cuando especifico límites en el eje y. Creo que el siguiente debe reproducir el problema:barras geom_bar que no se muestran al especificar ylim
data <- structure(list(RoleCond = structure(c(1L, 1L, 2L, 2L), .Label = c("Buyer", "Seller"), class = "factor"),
ArgCond = structure(c(1L, 2L, 1L, 2L), .Label = c("No Argument", "Argument"), class = "factor"),
mean = c(2210.71428571429, 2142.70833333333, 2282.40740740741, 2346.2962962963),
se = c(20.1231042081511, 16.7408757749718, 20.1471554637891, 15.708092540868)),
.Names = c("RoleCond", "ArgCond", "mean", "se"), row.names = c(NA, -4L), class = "data.frame")
library(ggplot2)
ggplot(data=data, aes(fill=RoleCond, y=mean, x=ArgCond)) +
geom_bar(position="dodge", stat="identity") +
geom_errorbar(limits, position=dodge, width=0.1, size=.75) +
scale_y_continuous(limits=c(2000,2500))
que me da este
El mismo código sin los límites especificados funciona bien. El geom_errorbar() no parece estar relacionado con el problema, pero sí ilustra dónde deberían aparecer las barras.
He intentado usar coord_cartesian(ylim=c(2000,2500))
que funciona para limitar el yaxis y hacer que aparezcan las barras, pero las etiquetas de los ejes se estropean y no entiendo qué estoy haciendo con ellas.
¡Gracias por cualquier sugerencia! (Estoy usando R 2.15.0 y 0.9.0 ggplot2)
Ver también la respuesta de Hadley: "Creo que usar squish sería canónico. Y este es un uso válido, pero crea un gráfico engañoso". (Para ampliar el segundo punto: generalmente * no * se considera una buena idea usar barras cuando la línea base del gráfico no está en cero ... –
Gracias Joran y Ben. Nota para cualquiera que encuentre esto, tuve que cargar 'biblioteca (escala) 'para usar el parámetro oob. Definitivamente comparto las preocupaciones con líneas de base distintas de 0 en gráficos de barras en general, pero en este caso el único rango posible de respuestas fue 2000-2500, así que creo que ilustra las diferencias de manera justa (también, es lo que la gente espera y no me siento lo suficientemente valiente como para "hacer lo correcto" en este momento) –
@SamSwift, creo que es 'library (scales)' (con una "s"). – A5C1D2H2I1M1N2O1R2T1