Personalizar diagramas de caja

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este tutorial, aprenderemos cómo personalizar los diagramas de caja en Matplotlib. Los diagramas de caja son una forma popular de visualizar la distribución de un conjunto de datos. También se les conoce como diagramas de caja y bigotes y muestran la mediana, los cuartiles y los valores atípicos de los datos. Veremos varios ejemplos para aprender cómo personalizar los diagramas de caja utilizando Matplotlib.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

Comenzaremos importando las bibliotecas necesarias, que son Matplotlib y NumPy. También estableceremos una semilla aleatoria para NumPy para garantizar que nuestros resultados sean reproducibles.

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(19680801)

Generar datos

Generaremos algunos datos aleatorios para utilizar en nuestros ejemplos. Utilizaremos la función random.lognormal() de NumPy para generar datos log-normales con una media de 1.5 y una desviación estándar de 1.75. Generaremos 37 muestras de 4 variables y las almacenaremos en la variable data. También crearemos una lista de etiquetas para cada variable.

data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')

Diagrama de caja predeterminado

Comenzaremos creando un diagrama de caja predeterminado para visualizar los datos. Utilizaremos la función boxplot() de Matplotlib y pasaremos los datos y las etiquetas como argumentos. También estableceremos el título del gráfico utilizando la función set_title().

fig, ax = plt.subplots()
ax.boxplot(data, labels=labels)
ax.set_title('Default Box Plot')
plt.show()

Eliminar componentes individuales

Podemos eliminar componentes individuales del diagrama de caja utilizando los diversos argumentos de palabras clave disponibles en la función boxplot(). Por ejemplo, podemos eliminar las medias estableciendo showmeans en False. También podemos eliminar la caja y las bigotes estableciendo showbox y showcaps en False, respectivamente.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

axs[0, 1].boxplot(data, labels=labels, showmeans=False)
axs[0, 1].set_title('No Means')

axs[1, 0].boxplot(data, labels=labels, showbox=False, showcaps=False)
axs[1, 0].set_title('No Box or Whiskers')

axs[1, 1].boxplot(data, labels=labels, showfliers=False)
axs[1, 1].set_title('No Outliers')

plt.show()

Personalizar los estilos del diagrama de caja

También podemos personalizar los estilos del diagrama de caja utilizando los diversos argumentos de palabras clave disponibles en la función boxplot(). Por ejemplo, podemos cambiar el color y el estilo de línea de la caja estableciendo boxprops. También podemos cambiar el estilo de la mediana, la media y la línea de la media estableciendo medianprops, meanprops y meanlineprops, respectivamente.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

boxprops = dict(linestyle='--', linewidth=2, color='red')
axs[0, 1].boxplot(data, labels=labels, boxprops=boxprops)
axs[0, 1].set_title('Custom Box')

medianprops = dict(linestyle='-', linewidth=2, color='blue')
meanprops = dict(marker='D', markeredgecolor='black', markerfacecolor='green')
meanlineprops = dict(linestyle='--', linewidth=2, color='red')
axs[1, 0].boxplot(data, labels=labels, medianprops=medianprops, meanprops=meanprops, meanline=True, meanlineprops=meanlineprops)
axs[1, 0].set_title('Custom Median, Mean, and Mean Line')

flierprops = dict(marker='o', markerfacecolor='red', markersize=8, markeredgecolor='none')
axs[1, 1].boxplot(data, labels=labels, flierprops=flierprops)
axs[1, 1].set_title('Custom Outliers')

plt.show()

Resumen

Los diagramas de caja son una excelente manera de visualizar la distribución de un conjunto de datos. Matplotlib ofrece muchas opciones de personalización para los diagramas de caja, como eliminar componentes individuales y personalizar los estilos de los componentes. Al utilizar estas opciones, podemos crear diagramas de caja que comuniquen efectivamente la información que queremos transmitir.