Los gráficos de barras son una herramienta fundamental en la visualización de datos, utilizados para comparar valores entre diferentes categorías. Representan datos con barras rectangulares donde la longitud de la barra es proporcional al valor que representa.
En este laboratorio, aprenderá a utilizar la biblioteca Matplotlib en Python para crear gráficos de barras. Comenzará preparando datos, luego creará gráficos de barras verticales y horizontales, personalizará su apariencia con colores y, finalmente, agregará una leyenda para hacer su gráfico más informativo. Toda la generación de gráficos se realizará escribiendo scripts de Python y guardando los gráficos como archivos de imagen, que luego podrá ver directamente en el entorno de LabEx.
Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 85%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.
Preparar listas de categorías y valores
En este paso, comenzará configurando los datos básicos para nuestro gráfico de barras. Un gráfico de barras requiere dos componentes principales: una lista de categorías para el eje y una lista correspondiente de valores numéricos que determinan el tamaño de las barras.
Utilizaremos un conjunto de datos simple que representa las cifras de ventas mensuales. Primero, abra el archivo main.py ubicado en el directorio ~/project desde el explorador de archivos de la izquierda.
Ahora, agregue el siguiente código Python al archivo main.py. Este código importa la biblioteca Matplotlib necesaria y define nuestros datos.
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
Analicemos este código:
import matplotlib.pyplot as plt: Esta línea importa el módulo pyplot de la biblioteca matplotlib y le da el alias convencional plt. Usaremos plt para llamar a las funciones de trazado.
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']: Esta lista contiene las etiquetas para nuestro eje x. Cada cadena representa una categoría.
values = [320, 450, 500, 480, 600]: Esta lista contiene los datos numéricos correspondientes a cada categoría. Por ejemplo, las ventas de 'Jan' son 320.
Después de agregar el código, guarde el archivo main.py. En el siguiente paso, utilizaremos estos datos para crear nuestro primer gráfico de barras.
Crear gráfico de barras vertical usando plt.bar()
En este paso, utilizará los datos que preparó para crear un gráfico de barras vertical. La función principal para esto es plt.bar(). Esta función toma las categorías para el eje x y sus valores correspondientes para el eje y para dibujar las barras.
Agregue las siguientes líneas de código al final de su archivo main.py. Este nuevo código generará el gráfico, agregará etiquetas y un título, y lo guardará como un archivo de imagen.
## Create the bar chart
plt.bar(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/vertical_bar_chart.png')
print("Vertical bar chart saved as vertical_bar_chart.png")
Aquí hay una explicación del nuevo código:
plt.bar(categories, values): Esta es la función principal que crea el gráfico de barras. Mapea la lista categories al eje x y la lista values a la altura de las barras en el eje y.
plt.title(), plt.xlabel(), plt.ylabel(): Estas funciones agregan un título al gráfico y etiquetas a los ejes x e y, respectivamente, lo que hace que el gráfico sea más fácil de entender.
plt.savefig(...): Dado que estamos en un entorno sin GUI, no podemos mostrar el gráfico directamente con plt.show(). En su lugar, plt.savefig() guarda el gráfico generado en un archivo. Lo estamos guardando como vertical_bar_chart.png en el directorio ~/project.
Ahora, ejecute su script desde la terminal:
python3 main.py
Debería ver la siguiente salida:
Vertical bar chart saved as vertical_bar_chart.png
Aparecerá un nuevo archivo llamado vertical_bar_chart.png en su explorador de archivos. ¡Haga doble clic en él para ver su primer gráfico de barras!
Crear gráfico de barras horizontal usando plt.barh()
En este paso, aprenderá a crear un gráfico de barras horizontal. Esto es útil cuando tiene etiquetas de categoría largas que podrían superponerse en un gráfico vertical. Matplotlib proporciona la función plt.barh() para este propósito, que funciona de manera similar a plt.bar() pero dibuja las barras horizontalmente.
Modifique su archivo main.py para usar plt.barh() en lugar de plt.bar(). Tenga en cuenta que para plt.barh(), los parámetros son y (categorías) y width (valores). También necesitamos intercambiar xlabel y ylabel.
Reemplace la sección de trazado de su archivo main.py con el siguiente código:
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
El main.py completo debería verse ahora así:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
Ahora, ejecute el script actualizado desde la terminal:
python3 main.py
Verá esta salida:
Horizontal bar chart saved as horizontal_bar_chart.png
Verifique su directorio de proyecto para ver el nuevo archivo horizontal_bar_chart.png y ábralo para ver su gráfico de barras horizontal.
Personalizar colores de barras usando el parámetro color
En este paso, mejorará su gráfico de barras agregando colores. Matplotlib facilita el cambio del color de las barras utilizando el parámetro color en la función plt.bar() o plt.barh(). Puede establecer un solo color para todas las barras o proporcionar una lista de colores para colorear cada barra individualmente.
Volvamos al gráfico de barras vertical y demos a cada barra un color diferente. Modifique su archivo main.py para incluir una lista de colores y pásela a la función plt.bar().
Su archivo main.py debería actualizarse para verse así:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
colors = ['skyblue', 'lightgreen', 'salmon', 'gold', 'orchid']
## Create the bar chart with custom colors
plt.bar(categories, values, color=colors)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/colored_bar_chart.png')
print("Colored bar chart saved as colored_bar_chart.png")
En este código:
Definimos una lista colors, donde cada nombre de color corresponde a una barra en el gráfico.
Pasamos esta lista al parámetro color en plt.bar(categories, values, color=colors).
Cambiamos el nombre del archivo de salida a colored_bar_chart.png para evitar sobrescribir nuestro trabajo anterior.
Ejecute el script desde la terminal:
python3 main.py
La salida será:
Colored bar chart saved as colored_bar_chart.png
Abra el archivo recién creado colored_bar_chart.png para ver su colorido gráfico de barras.
Añadir leyenda usando plt.legend()
En este último paso, aprenderá a añadir una leyenda a su gráfico. Una leyenda es crucial para explicar qué representan los diferentes elementos en un gráfico, especialmente cuando se están trazando múltiples conjuntos de datos.
Para añadir una leyenda, primero debe especificar una label (etiqueta) para los datos de su gráfico. Luego, llama a la función plt.legend() para mostrar la leyenda en el gráfico.
Modifiquemos el script main.py para incluir una etiqueta para nuestros datos de ventas y luego renderizar la leyenda.
Actualice su archivo main.py con el siguiente código:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the bar chart with a label
plt.bar(categories, values, color='skyblue', label='This Year Sales')
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Add the legend
plt.legend()
## Save the plot to a file
plt.savefig('/home/labex/project/bar_chart_with_legend.png')
print("Bar chart with legend saved as bar_chart_with_legend.png")
Aquí están los cambios:
En plt.bar(), añadimos el parámetro label='This Year Sales'. Esto asigna un nombre a nuestro conjunto de datos.
Añadimos la llamada a plt.legend(). Esta función encuentra todos los elementos etiquetados en el gráfico y crea un cuadro de leyenda.
Estamos usando un solo color 'skyblue' por simplicidad y guardando el gráfico final como bar_chart_with_legend.png.
Ejecute el script una última vez:
python3 main.py
Verá el mensaje de confirmación final:
Bar chart with legend saved as bar_chart_with_legend.png
Ahora, abra bar_chart_with_legend.png desde el explorador de archivos. Verá su gráfico de barras completo con una leyenda, que identifica correctamente las barras como "This Year Sales".
Resumen
¡Felicitaciones por completar este laboratorio! Ha aprendido con éxito los fundamentos de la creación y personalización de gráficos de barras con Matplotlib.
En este laboratorio, ha aprendido a:
Preparar datos (categorías y valores) para graficar.
Crear un gráfico de barras vertical usando plt.bar().
Crear un gráfico de barras horizontal usando plt.barh().
Personalizar la apariencia de las barras usando el parámetro color.
Añadir una leyenda descriptiva a su gráfico usando el parámetro label y la función plt.legend().
Estas habilidades son esenciales para cualquier tarea de análisis o visualización de datos. Ahora puede crear gráficos de barras claros y efectivos para comparar datos categóricos. Siéntase libre de experimentar aún más con otras características de Matplotlib para crear gráficos aún más sofisticados.