Gráfico de barras de Matplotlib – Tutorial y ejemplos

G

Introducción

Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Desde visualizaciones simples hasta complejas, es la biblioteca de referencia para la mayoría.

En este tutorial, veremos cómo trazar un diagrama de barras en Matplotlib.

Los gráficos de barras muestran cantidades numéricas en un eje y variables categóricas en el otro, lo que le permite ver cuántas ocurrencias hay para las diferentes categorías.

Los gráficos de barras se pueden utilizar para visualizar una serie de tiempo, así como solo datos categóricos.

Trazar un diagrama de barras en Matplotlib

Trazar un gráfico de barras en Matplotlib es tan fácil como llamar al bar() función en la instancia de PyPlot, y pasando las variables categóricas y continuas que nos gustaría visualizar.

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.bar(x, y)
plt.show()

Aquí, tenemos algunas variables categóricas en una lista: A, B y C. También tenemos un par de variables continuas en otra lista: 1, 5 y 3. La relación entre estos dos se visualiza luego en un gráfico de barras pasando estas dos listas a plt.bar().

Esto da como resultado un gráfico de barras limpio y simple:

Trazar un gráfico de barras horizontales en Matplotlib

A menudo, es posible que deseemos trazar un gráfico de barras horizontalmente, en lugar de verticalmente. Esto se puede lograr fácilmente cambiando el plt.bar() llamar con el plt.barh() llamada:

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.barh(x, y)
plt.show()

Esto da como resultado un gráfico de barras orientado horizontalmente:

Cambiar el color del gráfico de barras en Matplotlib

Cambiar el color de las barras es tan fácil como configurar el color argumento con una lista de colores. Si tiene más barras que colores en la lista, comenzarán a aplicarse desde el primer color nuevamente:

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.bar(x, y, color=['red', 'blue', 'green'])
plt.show()

Ahora, tenemos un gráfico de barras de colores agradables:

Por supuesto, también puede utilizar las versiones abreviadas o incluso los códigos HTML:

plt.bar(x, y, color=['red', 'blue', 'green'])
plt.bar(x, y, color=['r', 'b', 'g'])
plt.bar(x, y, color=['#ff0000', '#00ff00', '#0000ff'])
plt.show()

O incluso puede poner un solo valor escalar, para aplicarlo a todas las barras:

plt.bar(x, y, color="green")

Gráfico de barras con barras de error en Matplotlib

Al trazar valores medios de listas, que es una aplicación común para gráficos de barras, tendrá un espacio de error. Es muy útil trazar barras de error para que otros observadores, y usted mismo, sepan cuán veraces son estos medios y qué desviación se espera.

Para ello, hagamos un conjunto de datos con algunos valores, calculemos sus medias y desviaciones estándar con Numpy y grafiquemos con barras de error:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([4, 5, 6, 3, 6, 5, 7, 3, 4, 5])
y = np.array([3, 4, 1, 3, 2, 3, 3, 1, 2, 3])
z = np.array([6, 9, 8, 7, 9, 8, 9, 6, 8, 7])

x_mean = np.mean(x)
y_mean = np.mean(y)
z_mean = np.mean(z)

x_deviation = np.std(x)
y_deviation = np.std(y)
z_deviation = np.std(z)

bars = [x_mean, y_mean, z_mean]
bar_categories = ['X', 'Y', 'Z']
error_bars = [x_deviation, y_deviation, z_deviation]

plt.bar(bar_categories, bars, yerr=error_bars)
plt.show()

Aquí, hemos creado tres conjuntos de datos falsos con varios valores cada uno. Visualizaremos los valores medios de cada una de estas listas. Sin embargo, dado que las medias, así como los promedios, pueden dar una falsa sensación de precisión, también calcularemos la desviación estándar de estos conjuntos de datos para poder agregarlos como barras de error.

Usando Numpy’s mean() y std() funciones, esto es muy sencillo. Luego, hemos empaquetado los valores de la barra en un bars lista, los nombres de las barras para una experiencia de usuario agradable en bar_categories y finalmente – los valores de la desviación estándar en un error_bars lista.

Para visualizar esto, llamamos al regular bar() función, pasando en el bar_categories (valores categóricos) y bars (valores continuos), junto con yerr argumento.

Como estamos trazando verticalmente, estamos usando el yerr argumento. Si estuviéramos trazando horizontalmente, usaríamos el xerr argumento. Aquí, proporcionamos la información sobre las barras de error.

Esto finalmente resulta en:

Trazar Diagrama de barras apiladas en Matplotlib

Finalmente, tracemos un gráfico de barras apiladas. Los diagramas de barras apiladas son realmente útiles si tiene grupos de variables, pero en lugar de trazarlos uno al lado del otro, le gustaría trazarlos uno encima del otro.

Para ello, volveremos a tener grupos de datos. Luego, calcularemos su desviación estándar para las barras de error.

Finalmente, necesitaremos un rango de índice para graficar estas variables una encima de la otra, manteniendo su orden relativo. Este índice será esencialmente un rango de números de la longitud de todos los grupos que tenemos.

Para apilar una barra sobre otra, usa el bottom argumento. Usted especifica lo que hay en el bottom de esa barra. Para trazar x debajo y, tú establecerías x como el bottom de y.

Para más de un grupo, querrá sumar los valores antes de trazar, de lo contrario, el gráfico de barras no se sumará. Usaremos Numpy’s np.add().tolist() para agregar los elementos de dos listas y producir una lista de nuevo:

import matplotlib.pyplot as plt
import numpy as np

# Groups of data, first values are plotted on top of each other
# Second values are plotted on top of each other, etc
x = [1, 3, 2]
y = [2, 3, 3]
z = [7, 6, 8]

# Standard deviation rates for error bars
x_deviation = np.std(x)
y_deviation = np.std(y)
z_deviation = np.std(z)

bars = [x, y, z]
ind = np.arange(len(bars))
bar_categories = ['X', 'Y', 'Z'];
bar_width = 0.5
bar_padding = np.add(x, y).tolist()


plt.bar(ind, x, yerr=x_deviation, width=bar_width)
plt.bar(ind, y, yerr=y_deviation, bottom=x, width=bar_width)
plt.bar(ind, z, yerr=z_deviation, bottom=bar_padding, width=bar_width)

plt.xticks(ind, bar_categories)
plt.xlabel("Stacked Bar Plot")

plt.show()

Ejecutar este código da como resultado:

Conclusión

En este tutorial, hemos repasado varias formas de trazar un diagrama de barras usando Matplotlib y Python. También cubrimos cómo calcular y agregar barras de error, así como apilar barras una encima de la otra.

Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.

Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.

Visualización de datos en Python

¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad