varias superponer studio los graficos graficas ggplot etiquetas escala ejes como cambiar r ggplot2

studio - superponer graficas en r ggplot



Usando ggplot2, ¿puedo insertar un corte en el eje? (5)

Quiero hacer un diagrama de barras donde uno de los valores es mucho más grande que todos los demás valores. ¿Hay alguna manera de tener un eje y discontinuo? Mis datos son los siguientes:

df <- data.frame(a = c(1,2,3,500), b = c(''a1'', ''a2'',''a3'', ''a4'')) p <- ggplot(data = df, aes(x = b, y = a)) + geom_bar() p <- p + opts(axis.text.x=theme_text(angle= 90, hjust=1)) + coord_flip() p

¿Hay alguna manera de hacer que mi eje funcione desde 1 a 10, luego a 490 a 500? No puedo pensar en otra forma de trazar los datos (aparte de transformarlos, lo que no quiero hacer)


Como se señaló en otra parte, esto no es algo que ggplot2 manejará bien, ya que los ejes rotos generalmente se consideran cuestionables.

Otras estrategias a menudo se consideran mejores soluciones para este problema. Brian mencionó algunas (facetas, dos tramas centradas en diferentes conjuntos de valores). Otra opción que las personas a menudo pasan por alto, especialmente para los diagramas de barras, es hacer una tabla :

Al observar los valores reales, ¡el 500 no oscurece las diferencias en los otros valores! Por alguna razón, las tablas no reciben suficiente respeto como datos una técnica de visualización. Puede objetar que sus datos tienen muchas, muchas categorías que se vuelven difíciles de manejar en una tabla. Si es así, es probable que su gráfico de barras tenga demasiadas barras para ser sensato también.

Y no estoy discutiendo por tablas todo el tiempo. Pero definitivamente son algo a considerar si está haciendo gráficos de barras con relativamente pocos compases. Y si está haciendo diagramas de barras con toneladas de barras, puede que tenga que replantearse de todos modos.

Finalmente, también está la función axis.break en el paquete plotrix que implementa ejes rotos. Sin embargo, por lo que veo, tendrás que especificar las etiquetas de los ejes y las posiciones tú mismo, a mano.


Dudo que haya algo fuera de lo común en R, pero podrías mostrar los datos como una serie de cubos parciales 3D. 500 es solo 5 * 10 * 10, por lo que se escalaría bien. El valor exacto podría ser una etiqueta.

Esto probablemente solo debería usarse si debe tener una representación gráfica por algún motivo.


No con ggplot, pero con plotrix puedes hacer eso fácilmente:

library(plotrix) gap.barplot(df$a, gap=c(5,495),horiz=T)



no, desafortunadamente no

El temor es que permitir ejes discontinuos conduzca al engaño de la audiencia. Sin embargo, hay casos en que no tener un eje discontinuo conduce a la distorsión.

Por ejemplo, si el eje está truncado, pero generalmente se encuentra dentro de algún intervalo (digamos [0,1]), el público puede no notar el truncamiento y hacer conclusiones distorsionadas sobre los datos. En este caso, un eje discontinuo explícito sería más apropiado y transparente.

Comparar: