Especificación del Gráfico

Los gráficos de violín son una alternativa a los diagramas de caja que resuelven los problemas relacionados con la visualización de la distribución subyacente de los datos, ya que estos gráficos muestran una estimación de la densidad tipo núcleo de las observaciones. La caja es curvada para dar una apreciación de la densidad de los datos. Si la distribución de los datos sigue una curva normal, saldrá entonces como una curva de campana orientada verticalmente.

La función geom_violin () de la librería ggplot2 se usa para producir un diagrama de violín.

Variables Adecuadas para Graficar

El conjunto de datos debe tener características numéricas continuas. Esto se debe a que los gráficos de violín se utilizan para visualizar distribuciones de datos continuos. Muestran el rango, la mediana y la distribución de los datos:

Ya que hay una distribución específica que nos gustaría ver segmentada por tipo.

Código en R para generar el gráfico

Preparar conjunto de datos:

View(ToothGrowth)

Para este caso práctico se utilizará el conjunto de datos ToothGrowth (crecimiento dental) que es una base de datos por defecto de R, que es la longitud de los odontoblastos (dientes) en cada uno de los 10 conejillos de indias en tres niveles de dosis de vitamina C (0,5, 1 y 2 mg) con dos métodos de administración (jugo de naranja o ácido ascórbico).

El archivo contiene 60 observaciones de 3 variables

Y convertimos la variable “dose” de numerica a factor para que sea categórica:

ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5
library(ggplot2)
par(mfrow = c(1,3))

Gráfico básico de violín

p <- ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_violin()
p

Lo que se puede entender de estos 3 gráficos de violín, es que el que tiene más brecha de datos es el tercero (derecha), ya que nos dice que entre 23 y 27 (ordenas) hay una gran cantidad de datos o donde se agrupan más, cosa similiar que pasa en el gráfico 1, de 8 a 12 (ordenadas).

En el gráfico 2 se concentran los datos más equitativamente a lo largo del violín.

Rotando el gráfico de violín

p + coord_flip()

Otra forma

También se puede crear un gráfico de violín solamente con la librería “vioplot”:

Código en R para generar el gráfico

library(vioplot)
vioplot(ToothGrowth)

Gráfico básico de violín

vioplot(ToothGrowth,
        col = 2,                # Color del área
        rectCol = "firebrick2", # Color del rectángulo
        lineCol = "azure",      # Color de la línea
        colMed = "aquamarine2", # Color del símbolo pch
        border = "navajowhite4",# Color del borde del violín
        pchMed = 16,            # Símbolo pch para la mediana
        plotCentre = "points")  # Si "line", dibuja una línea en la mediana