Personalización de Gráficos de Línea con Matplotlib

MatplotlibBeginner
Practicar Ahora

Introducción

Matplotlib es una potente biblioteca de Python para crear visualizaciones estáticas, animadas e interactivas. Si bien crear un gráfico básico es sencillo, personalizarlo es clave para que sus datos sean claros, comprensibles y visualmente atractivos.

En este laboratorio, comenzará con un gráfico de líneas simple y lo personalizará progresivamente. Aprenderá a cambiar el color de la línea, agregar marcadores a los puntos de datos, modificar el estilo de la línea, agregar un título a su gráfico y ajustar los límites de los ejes.

Dado que este entorno de laboratorio utiliza un WebIDE, no podemos mostrar gráficos en una ventana GUI separada. En su lugar, guardaremos cada gráfico como un archivo de imagen usando plt.savefig(). Luego podrá ver la imagen generada directamente dentro del IDE.

¡Empecemos!

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 96%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Graficar línea con color personalizado usando plt.plot(color='red')

En este paso, aprenderá a cambiar el color de una línea en su gráfico. Por defecto, Matplotlib recorre un conjunto predefinido de colores. Sin embargo, puede especificar fácilmente un color de su elección utilizando el parámetro color en la función plt.plot().

Primero, creemos un gráfico básico de una onda sinusoidal. Usaremos NumPy para generar los puntos de datos.

Abra el archivo main.py ubicado en el directorio ~/project en el explorador de archivos de la izquierda. Reemplace su contenido con el siguiente código. Este código trazará una onda sinusoidal y la coloreará de rojo.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color
plt.plot(x, y, color='red')

## Save the plot to a file
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

Después de haber actualizado el archivo main.py, guárdelo. Ahora, ejecute el script desde la terminal en la parte inferior del IDE:

python3 main.py

Debería ver la siguiente salida en la terminal:

Plot saved as plot_color.png

Aparecerá un nuevo archivo llamado plot_color.png en el directorio ~/project. Haga doble clic en él para abrir y ver su primer gráfico personalizado. Verá una onda sinusoidal roja.

Plot color

Añadir marcadores usando plt.plot(marker='o')

En este paso, añadirá marcadores a sus puntos de datos. Los marcadores son útiles para resaltar la ubicación exacta de cada punto de datos en la línea, lo que puede ser especialmente útil cuando los puntos de datos son escasos.

Puede añadir marcadores utilizando el parámetro marker en la función plt.plot(). Hay muchos estilos de marcadores disponibles, como 'o' para círculos, 'x' para cruces y '*' para estrellas.

Modifiquemos el archivo main.py para añadir marcadores de círculo a nuestro gráfico. También cambiaremos el nombre del archivo de salida a plot_marker.png para conservar nuestro progreso del paso anterior.

Actualice el archivo main.py con el siguiente código:

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color and marker
plt.plot(x, y, color='red', marker='o')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

Guarde el archivo y ejecute el script de nuevo en la terminal:

python3 main.py

La terminal mostrará esta salida:

Plot saved as plot_marker.png

Ahora, busque el nuevo archivo plot_marker.png en el explorador de archivos y haga doble clic en él. Verá que la línea roja ahora tiene pequeños círculos en cada punto de datos.

Plot marker

Establecer estilo de línea usando plt.plot(linestyle='--')

En este paso, aprenderá a cambiar el estilo de la línea en sí. El valor predeterminado es una línea sólida, pero puede cambiarla a una línea discontinua, una línea punteada u otras para diferenciar entre múltiples líneas en el mismo gráfico o simplemente por razones estéticas.

Esto se hace utilizando el parámetro linestyle (o su abreviatura ls). Los estilos comunes incluyen '--' para discontinua, ':' para punteada y '-.' para guion-punto.

Actualicemos nuestro gráfico para usar una línea discontinua. Modifique el archivo main.py como se muestra a continuación. También cambiaremos el nombre del archivo de salida a plot_linestyle.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with custom color, marker, and line style
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

Guarde los cambios y ejecute el script desde su terminal:

python3 main.py

Verá el mensaje de confirmación:

Plot saved as plot_linestyle.png

Abra el archivo recién creado plot_linestyle.png. Notará que la línea que conecta los marcadores ahora es discontinua en lugar de sólida.

Plot linestyle

Añadir título usando plt.title()

Un gráfico sin título puede ser ambiguo. Es crucial dar a sus gráficos un título descriptivo para que los espectadores puedan entender inmediatamente qué representa el gráfico. En Matplotlib, puede añadir un título utilizando la función plt.title().

En este paso, añadirá el título "Onda Senoidal" a su gráfico. Esta función se llama antes de guardar la figura.

Modifique su archivo main.py para incluir la llamada a plt.title(). El nuevo archivo de salida será plot_title.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title to the plot
plt.title('Sine Wave')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

Guarde el archivo y ejecute el script:

python3 main.py

La salida será:

Plot saved as plot_title.png

Abra plot_title.png para ver su gráfico. Ahora debería tener el título "Onda Senoidal" mostrado en la parte superior.

Plot title

Ajustar límites de ejes usando plt.xlim() y plt.ylim()

A veces, es posible que desee centrarse en una región específica de su gráfico o añadir un margen alrededor de los datos. Puede controlar el rango de los ejes x e y utilizando las funciones plt.xlim() y plt.ylim(), respectivamente.

En este paso final, ajustaremos los ejes para "acercar" una parte de la onda senoidal. Estableceremos el eje x en un rango de 0 a 5 y el eje y de -1.5 a 1.5. Esto le dará a nuestro gráfico un poco de espacio vertical.

Actualice su archivo main.py con la versión final del código. La salida se guardará en plot_final.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title
plt.title('Sine Wave')

## Adjust the axis limits
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## Save the final plot to a file
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

Guarde el archivo y ejecute el script por última vez:

python3 main.py

Obtendrá la confirmación final:

Plot saved as plot_final.png

Ahora, abra plot_final.png. Compárelo con los gráficos anteriores. Verá que el eje x ahora termina en 5, y hay más espacio por encima y por debajo de la onda senoidal debido a los nuevos límites del eje y.

Plot final

Resumen

¡Felicitaciones por completar este laboratorio! Ha aprendido con éxito cómo personalizar un gráfico de línea básico de Matplotlib para hacerlo más informativo y visualmente atractivo.

En este laboratorio, practicó:

  • Cambiar el color de la línea usando el parámetro color en plt.plot().
  • Añadir marcadores de puntos de datos con el parámetro marker.
  • Establecer el estilo de la línea usando el parámetro linestyle.
  • Añadir un título descriptivo con la función plt.title().
  • Ajustar los rangos de los ejes con plt.xlim() y plt.ylim().

Estas son habilidades fundamentales para crear gráficos de calidad profesional para el análisis y la presentación de datos. Siéntase libre de experimentar más probando diferentes colores, marcadores y estilos de línea, o añadiendo etiquetas a los ejes x e y usando plt.xlabel() y plt.ylabel().