Box plot en pandas

Los box plots resumen la distribución de una variable con sus cuartiles y muestran los valores atípicos. En pandas se crean con plot.box o con el método boxplot, que también permite crear una caja para cada grupo.

Box plot con plot.box

plot.box dibuja una caja para cada columna numérica del data frame.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(6)
df = pd.DataFrame({"estandar": rng.gamma(6, 7, 300),
                   "urgente": rng.gamma(4, 5, 300),
                   "ciudad": rng.choice(["Madrid", "Barcelona", "Sevilla"], 300)})

df[["estandar", "urgente"]].plot.box()
# plt.show()

Box plot de varias columnas en pandas

Box plot horizontal

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(6)
df = pd.DataFrame({"estandar": rng.gamma(6, 7, 300),
                   "urgente": rng.gamma(4, 5, 300),
                   "ciudad": rng.choice(["Madrid", "Barcelona", "Sevilla"], 300)})

df[["estandar", "urgente"]].plot.box(vert = False)
# plt.show()

Box plot horizontal en pandas

Box plot por grupo

El método boxplot con el argumento by crea una caja para cada grupo de una variable categórica.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(6)
df = pd.DataFrame({"estandar": rng.gamma(6, 7, 300),
                   "urgente": rng.gamma(4, 5, 300),
                   "ciudad": rng.choice(["Madrid", "Barcelona", "Sevilla"], 300)})

df.boxplot(column = "estandar", by = "ciudad", grid = False)
plt.suptitle("")
# plt.show()

Box plot por grupo en pandas

pandas agrega un título automático a la figura al usar by. Elimínalo con plt.suptitle("") como en el ejemplo anterior.

Colores del box plot

Pasa un diccionario a color para establecer el color de las cajas (boxes), los bigotes (whiskers), las medianas (medians) y los extremos (caps). Utiliza patch_artist = True para rellenar las cajas.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(6)
df = pd.DataFrame({"estandar": rng.gamma(6, 7, 300),
                   "urgente": rng.gamma(4, 5, 300),
                   "ciudad": rng.choice(["Madrid", "Barcelona", "Sevilla"], 300)})

df[["estandar", "urgente"]].plot.box(color = {"boxes": "#264653", "whiskers": "#264653",
                                               "medians": "#E76F51", "caps": "#264653"},
                                      patch_artist = True)
# plt.show()

Cambiar los colores de un box plot de pandas

Mostrar la media

Puedes pasar a pandas cualquier argumento de la función boxplot de matplotlib. Por ejemplo, showmeans = True agrega la media de cada caja.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(6)
df = pd.DataFrame({"estandar": rng.gamma(6, 7, 300),
                   "urgente": rng.gamma(4, 5, 300),
                   "ciudad": rng.choice(["Madrid", "Barcelona", "Sevilla"], 300)})

df[["estandar", "urgente"]].plot.box(showmeans = True)
# plt.show()

Box plot con la media en pandas

Aprende a crear un box plot en matplotlib o en seaborn para tener más opciones de personalización.

Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon

También te puede interesar