Un diagrama de caja , también conocido como diagrama de bigotes , se crea para mostrar el resumen del conjunto de valores de datos que tienen propiedades como mínimo, primer cuartil, mediana, tercer cuartil y máximo. En el diagrama de caja, se crea una caja desde el primer cuartil hasta el tercer cuartil, también hay una línea vertical que atraviesa la caja en la mediana. Aquí, el eje x indica los datos que se trazarán, mientras que el eje y muestra la distribución de frecuencia.
Crear diagrama de caja
El módulo matplotlib.pyplot de la biblioteca matplotlib proporciona la función boxplot() con la ayuda de la cual podemos crear diagramas de caja.
Sintaxis:
matplotlib.pyplot.boxplot(datos, muesca=Ninguno, vert=Ninguno, patch_artist=Ninguno, anchos=Ninguno)
Parámetros:
Atributo | Valor |
---|---|
datos | array o secuencia de array a trazar |
muesca | el parámetro opcional acepta valores booleanos |
vert | el parámetro opcional acepta valores booleanos falso y verdadero para gráficos horizontales y verticales respectivamente |
oreja | parámetro opcional acepta int especifica intervalos alrededor de diagramas de caja con muescas |
usuariosmedianos | el parámetro opcional acepta array o secuencia de dimensión de array compatible con los datos |
posiciones | el parámetro opcional acepta la array y establece la posición de los cuadros |
anchos | el parámetro opcional acepta la array y establece el ancho de las cajas |
artista_parche | parámetro opcional que tiene valores booleanos |
etiquetas | secuencia de strings establece la etiqueta para cada conjunto de datos |
línea media | opcional tener un valor booleano intente representar la línea media como ancho completo del cuadro |
ordenar | parámetro opcional establece el orden del diagrama de caja |
Los valores de datos proporcionados al método ax.boxplot() pueden ser una array Numpy o una lista de Python o una tupla de arrays. Vamos a crear el diagrama de caja usando numpy.random.normal() para crear algunos datos aleatorios, toma la media, la desviación estándar y la cantidad deseada de valores como argumentos.
Ejemplo:
Python3
# Import libraries import matplotlib.pyplot as plt import numpy as np # Creating dataset np.random.seed(10) data = np.random.normal(100, 20, 200) fig = plt.figure(figsize =(10, 7)) # Creating plot plt.boxplot(data) # show plot plt.show()
Producción:
Personalización de diagrama de caja
matplotlib.pyplot.boxplot() ofrece infinitas posibilidades de personalización para el diagrama de caja. El atributo muesca = True crea el formato de muesca para el diagrama de caja, patch_artist = True llena el diagrama de caja con colores, podemos establecer diferentes colores para diferentes cuadros. El atributo vert = 0 crea un diagrama de caja horizontal. Las etiquetas tienen las mismas dimensiones que los conjuntos de datos numéricos.
Ejemplo 1:
Python3
# Import libraries import matplotlib.pyplot as plt import numpy as np # Creating dataset np.random.seed(10) data_1 = np.random.normal(100, 10, 200) data_2 = np.random.normal(90, 20, 200) data_3 = np.random.normal(80, 30, 200) data_4 = np.random.normal(70, 40, 200) data = [data_1, data_2, data_3, data_4] fig = plt.figure(figsize =(10, 7)) # Creating axes instance ax = fig.add_axes([0, 0, 1, 1]) # Creating plot bp = ax.boxplot(data) # show plot plt.show()
Producción:
Ejemplo 2: Intentemos modificar el gráfico anterior con algunas de las personalizaciones:
Python3
# Import libraries import matplotlib.pyplot as plt import numpy as np # Creating dataset np.random.seed(10) data_1 = np.random.normal(100, 10, 200) data_2 = np.random.normal(90, 20, 200) data_3 = np.random.normal(80, 30, 200) data_4 = np.random.normal(70, 40, 200) data = [data_1, data_2, data_3, data_4] fig = plt.figure(figsize =(10, 7)) ax = fig.add_subplot(111) # Creating axes instance bp = ax.boxplot(data, patch_artist = True, notch ='True', vert = 0) colors = ['#0000FF', '#00FF00', '#FFFF00', '#FF00FF'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) # changing color and linewidth of # whiskers for whisker in bp['whiskers']: whisker.set(color ='#8B008B', linewidth = 1.5, linestyle =":") # changing color and linewidth of # caps for cap in bp['caps']: cap.set(color ='#8B008B', linewidth = 2) # changing color and linewidth of # medians for median in bp['medians']: median.set(color ='red', linewidth = 3) # changing style of fliers for flier in bp['fliers']: flier.set(marker ='D', color ='#e7298a', alpha = 0.5) # x-axis labels ax.set_yticklabels(['data_1', 'data_2', 'data_3', 'data_4']) # Adding title plt.title("Customized box plot") # Removing top axes and right axes # ticks ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() # show plot plt.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por jeeteshgavande30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA