10 votos

¿Boxplot para varias distribuciones?

Necesito dibujar 20 distribuciones en un único gráfico en R, y no se ve bien (desordenado) me con boxplot regular (20 cajas) incluso con boxwex = 0.3. Podrían sugerirme Cómo puedo trazar una especie de boxplot en R para las 20 distribuciones, con puntos para la mediana y sólo una línea en lugar de cuadro como el siguiente. Por favor también me sugieren si hay cualquier método de R que produce boxplots agradable, especialmente si quieres mostrar varias distribuciones en un solo gráfico.

 -----0----

14voto

jldugger Puntos 7490

(Esto es realmente un comentario, pero ya que requiere de una ilustración tiene que ser publicado como una respuesta.)

Ed Tufte rediseñado el boxplot en su presentación Visual de la Información Cuantitativa (p. 125, Primera Edición, 1983), precisamente para que "informales, análisis exploratorio de datos, donde la investigación del trabajador de tiempo debe ser dedicado a otros asuntos que no sean de dibujo de líneas." Tengo (en una manera perfectamente natural) extendió su rediseño para adaptarse dibujo de valores atípicos en este ejemplo que muestra 70 paralelo boxplots:

Tufte boxplots

No puedo pensar en varias formas para mejorarla aún más, pero es característico de lo que se podría producir en el calor de la exploración de un complejo conjunto de datos: estamos contentos de hacer visualizaciones que nos permiten ver los datos; buena presentación puede venir más tarde.

Compare esto con un convencionales de interpretación de los mismos datos:

Conventional boxplots

Tufte presenta varios otros rediseños basado en su principio de "maximización de los datos de la tinta relación." Su valor radica en ilustrar cómo este principio nos puede ayudar a diseñar exploratorio de gráficos. Como se puede ver, la mecánica de representación de las cantidades a la búsqueda de cualquier plataforma de gráficos en los que se puede dibujar marcadores de puntos y líneas.

11voto

Juriy Puntos 133

Beanplots

Posiblemente el mejor parcelas nunca, estos son, básicamente, una pequeña múltiplos de la implementación de violín parcelas. Violín parcelas tienen una enorme ventaja sobre los boxplots: se puede mostrar mucho más detalle para las distribuciones que no son normales (por ejemplo, se puede mostrar bi-modal distribuciones muy bien). Porque están generalmente basados en el suavizado Gaussiano (o similar), no funcionan muy bien para las distribuciones con altos puntos finales (como distribuciones exponenciales), pero entonces, no se boxplots.

Beanplots se puede lograr muy fácilmente en R - sólo tiene que instalar el beanplot paquete:

library(beanplot)

# Sampling code from Greg Snow's answer:
my.dat <- lapply( 1:20, function(x) rnorm(x+10, sample( 10, 1), sample(3,1) ) )

beanplot(my.dat)

Beanplot!

El beanplot función tiene un montón de opciones, así que usted puede personalizar con el deseo de su corazón. También hay una manera de hacer beanplots en ggplot2 (se necesita la versión más reciente):

library(ggplot2)

my.dat <- lapply(1:20, function(x) rnorm(x+10, sample(10, 1), sample(3,1)))
my.df <- melt(my.dat)
ggplot(my.df, aes(x=L1, y=value, group=L1)) + geom_violin(trim=FALSE) +
  geom_segment(aes(x=L1-0.1, xend=L1+0.1, y=value, yend=value), colour='white')

GGplot2 beanplot

4voto

Eero Puntos 1612

Aquí está algún código de ejemplo R para un par de maneras de hacerlo, probablemente desea ampliar sobre este (incluir etiquetas etc.) y tal vez ito una función:

my.dat <- lapply( 1:20, function(x) rnorm(x+10, sample( 10, 1), sample(3,1) ) )

tmp <- boxplot(my.dat, plot=FALSE, range=0)

# box and median only
plot( range(tmp$stats), c(1,length(my.dat)), xlab='', ylab='', type='n' )
    segments( tmp$stats[2,], seq_along(my.dat), tmp$stats[4,] )
    points( tmp$stats[3,], seq_along(my.dat) )

# wiskers and implied box
plot( range(tmp$stats), c(1,length(my.dat)), xlab='', ylab='', type='n' )
    segments( tmp$stats[1,], seq_along(my.dat), tmp$stats[2,] )
    segments( tmp$stats[4,], seq_along(my.dat), tmp$stats[5,] )
    points( tmp$stats[3,], seq_along(my.dat) )

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X