Mostrando entradas con la etiqueta Diagrama de caja. Mostrar todas las entradas
Mostrando entradas con la etiqueta Diagrama de caja. Mostrar todas las entradas

2016-03-08

Eliminar los bigotes de un diagrama de caja con R Base Package

Title

Problema

Al crear un diagrama de caja con R Base Package, por defecto representa unos bigotes con una longitud de 1,5 veces el RIC (Rango inter-cuartílico)y dos líneas o remates al final de lo mismoas, que queremos eliminar.

boxplot(mpg ~ cyl, data = mtcars)

Solución

Especificamos los argumentos whisklty = 0, staplelty = 0.

whisklty - determina el tipo de línea, anchura y color de los bigotes.
staplelty - determina el tipo de línea, anchura y color del final del bigote.

boxplot(mpg ~ cyl, data = mtcars, whisklty = 0, staplelty = 0)

Entradas relacionadas

Referencias

2016-03-06

Eliminar los bigotes de un diagrama de caja con ggplot2

Title

Problema

Al crear un diagrama de caja con ggplot2, por defecto representa unos bigotes con una longitud de 1,5 veces el RIC (Rango inter-cuartílico), que queremos eliminar.

library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot()

Solución

Especificamos el argumento coef = 0, sobrescribiendo el argumento por defecto de coef = 1.5.

p <- ggplot(mtcars, aes(factor(cyl), mpg))
p + geom_boxplot(outlier.size = 0, coef = 0)

Entradas relacionadas

Referencias

2015-11-23

Diagramas de dispersión con el paquete car en R

Title

Introducción

La función scatterplot del paquete car nos permite crear diagramas de dispersión mejorados. Incluye diagramas de caja en los márgenes, rectas de regresión suavizadas, identificación de valores atípicos etc. Veremos varios ejemplos usando datos (data frames) incluidos en el propio paquete car: Prestige y UN.

library(car)
head(Prestige)
                     education income women prestige census type
gov.administrators      13.11  12351 11.16     68.8   1113 prof
general.managers        12.26  25879  4.02     69.1   1130 prof
accountants             12.77   9271 15.70     63.4   1171 prof
purchasing.officers     11.42   8865  9.11     56.8   1175 prof
chemists                14.62   8403 11.68     73.5   2111 prof
physicists              15.64  11030  5.13     77.6   2113 prof

Ejemplos

  1. Gráfico relacionando la renta y la educación, incluyendo diagramas de caja en los ejes y regresión local (línea LOESS). Empleamos el formato fórmula y ~ x para indicar las variables a representar.
  2. scatterplot(education ~ income,
                data = Prestige,
                pch = 16,
                col = "darkblue",
                main = "Educación y Renta\n del conjunto de datos \"Prestige\"",
                xlab = "Renta (dollares)",
                ylab = "Educación (años)")
    
  3. Añadiendo elipses donde se concentran los datos
  4. scatterplot(prestige ~ income, data = Prestige, ellipse = TRUE)
    

  5. Representamos grupos siguiendo el formato y ~ x | z, en el que z evalúa como un factor otra variable pare dividir los datos en grupos.
  6. scatterplot(prestige ~ income|type, data = Prestige, legend.coords = "topleft")

  7. Etiquetar un número determinado de puntos.

  8. Por defecto id.n = 0, lo especificamos para indicar el número de puntos que deseamos etiquetar.
    scatterplot(infant.mortality ~ gdp, log = "xy", data = UN, id.n = 5)

  9. Etiquetar los datos interactivamente.

  10. Utilizamos el argumento id.method para etiquetar de la misma manera que hicimos con la función identify.

    scatterplot(infant.mortality ~ gdp, id.method = "identify", data = UN)

Entradas relacionadas

Referencias

2015-09-17

¿Cómo crear en R diagramas de caja agrupando los valores de x en intervalos?

Title

Problema

Deseamos crear diagramas de caja agrupando los valores del eje x en intervalos.

Soluciones

Datos

Generamos unos datos aleatorios y una secuencia que emplearemos para crear los intervalos.

set.seed(12)
y <- rnorm(1000)
x <- rnorm(1000)
rng <- seq(-3, 3, 0.5)
  • Paquete base
  • boxplot(y ~ cut(x, breaks = rng),las=2)
    
    Si queremos incluir los valores no disponibles (NAs), utilizamos la función addNA:

    boxplot(y ~ addNA(cut(x, breaks = rng)), las = 2)
    
  • Paquete ggplot2
  • Creamos primero el data frame con los intervalos.

    library(ggplot2)
    df <- data.frame(x = cut(x, breaks = rng), y = y)
    ggplot(data = df, aes(x = x, y = y)) + geom_boxplot(aes(fill = x))
    

    Entradas relacionadas

    Referencias

    2015-07-12

    Cómo modificar los bigotes de un diagrama de caja en ggplot2

    Title

    Problema

    Deseamos modificar los bigotes de un diagrama de caja creado con ggplot2. Los bigotes son las líneas sólidas que se extienden desde la caja. Definen los límites más allá de los cuales consideramos los valores como atípicos. Por defecto son negras, nosotros las deseamos en color rojo.

    library(ggplot2)
    p <- ggplot(mtcars, aes(factor(cyl), mpg, fill = factor(am)))
    p + geom_boxplot()
    

    Solución

    • Una alternativa
    • Creamos las barras de error en rojo y les superponemos las cajas.

      library(ggplot)
      p + stat_boxplot(
        geom = "errorbar",
        colour = "red",
        width = 0,
        position = position_dodge(0.75)
      ) +
        geom_boxplot(coef = 0, outlier.shape = NA)
      
    • Otra alternativa
    • Superponemos dos diagramas de caja, el primero con todos los bordes rojos y segundo sin bigotes en negro.

      p + geom_boxplot(color="red") + 
        geom_boxplot(aes(ymin=..lower.., ymax=..upper..)) 
      

    Results

    Entradas relacionadas

    Referencias

    2015-04-15

    Múltiples diagramas de caja usando la función plot en R

    Title En una entrada anterior representamos varios diagramas de caja simultáneamente mediante la función boxplot.

    Olvidamos mencionar que también podemos crearlos con la función plot. Le suministramos un factor y un vector numérico como argumentos x e y, y creará automáticamente un diagrama de caja.

    Dos ejemplos

    # Horizontal
    require(MASS)
    plot(UScereal$mfr, UScereal$sugar, 
            names =  c('Mills', 'Kelloggs', 'Nabisco', 'Post',
                       'Quaker Oats', 'Purina'),
            main =  'Contenido de azúcar por marca',
            col = c("beige", "blanchedalmond", "bisque1",
                    "bisque2", "bisque3", "bisque4"),
            xlab = 'Azúcar (gramos por porción)',
            horizontal = TRUE)
    
    # Vertical
    plot(factor(airquality$Month), 
         airquality$Ozone,
            main = 'Calidad del aire',
            xlab = 'mes',
            ylab = 'ozone (ppb)',
            col = 'skyblue')
    
    Como airquality$Month no es un factor, necesitamos convertirlo previamente .

    Entradas relacionadas

    Referencias

    Nube de datos