Skip to main content

Matplotlib

Matplotlib es una biblioteca de trazado (plotting) en Python que se utiliza para crear gráficos y visualizaciones de datos de manera sencilla y eficiente. Es una herramienta muy popular entre los científicos de datos, analistas y desarrolladores debido a su flexibilidad y capacidad para generar una amplia gama de tipos de gráficos. Aquí te explico sus características y usos principales:

Características Principales

  1. Versatilidad: Matplotlib permite crear gráficos de líneas, barras, dispersión, histogramas, tortas, y muchos otros tipos de gráficos.
  2. Personalización: Ofrece una gran capacidad de personalización, desde colores y estilos de línea hasta la anotación de gráficos con texto y etiquetas.
  3. Integración: Se integra bien con otras bibliotecas de Python como NumPy, Pandas y SciPy, lo que facilita la visualización de datos directamente desde estas estructuras de datos.
  4. Interactividad: Aunque principalmente es una biblioteca de gráficos estáticos, también permite crear gráficos interactivos cuando se utiliza junto con bibliotecas como mpl_toolkits y IPython.
  5. Publicación: Los gráficos generados con Matplotlib pueden guardarse en diversos formatos de archivo (PNG, PDF, SVG, etc.), lo cual es útil para su inclusión en publicaciones y presentaciones.

Componentes Principales

  • Figura (Figure): Es el contenedor principal de un gráfico. Dentro de una figura se pueden contener uno o más subgráficos (axes).
  • Ejes (Axes): Representa un único gráfico dentro de una figura. Incluye los ejes x e y (o z para gráficos 3D) y los elementos gráficos como líneas, marcas y etiquetas.
  • Artistas (Artists): Son todos los elementos visuales que se encuentran en un gráfico, como las líneas, textos, y parches.

Ejemplo Básico

A continuación, un ejemplo básico de cómo se utiliza Matplotlib para crear un gráfico de líneas:

import matplotlib.pyplot as plt

# Datos
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# Crear el gráfico
plt.plot(x, y)

# Añadir título y etiquetas
plt.title("Gráfico de líneas simple")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")

# Mostrar el gráfico
plt.show()

En este ejemplo, plt.plot() se usa para crear el gráfico de líneas, y plt.show() muestra el gráfico en una ventana.

Usos Comunes

  • Análisis de datos: Visualización de datos para análisis exploratorio.
  • Informes y publicaciones: Creación de gráficos para incluir en documentos científicos, técnicos o comerciales.
  • Aplicaciones interactivas: Desarrollo de aplicaciones que requieren gráficos interactivos.

Como crear y configurar un gráfico

Para crear un gráfico con Matplotlib y configurar sus distintos parámetros, puedes seguir varios pasos. A continuación, te explicaré cómo hacerlo, desde lo más básico hasta cómo personalizar diferentes aspectos del gráfico.

Paso 1: Importar Matplotlib

Primero, necesitas importar la biblioteca Matplotlib. La convención es importarla como plt.

import matplotlib.pyplot as plt

Paso 2: Preparar los Datos

Define los datos que deseas graficar. Puedes usar listas, tuplas o arreglos de NumPy.

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

Paso 3: Crear el Gráfico Básico

Usa la función plt.plot() para crear un gráfico de líneas básico.

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

Paso 4: Configuración de Parámetros

Puedes personalizar muchos aspectos del gráfico, como el título, las etiquetas de los ejes, el estilo de las líneas, colores, marcadores, etc.

Título y Etiquetas de Ejes

plt.plot(x, y)
plt.title("Título del Gráfico")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")
plt.show()

Estilo de Línea y Marcadores

Puedes cambiar el estilo de las líneas y añadir marcadores para los puntos de datos.

plt.plot(x, y, linestyle='--', marker='o', color='b')  # Línea discontinua azul con marcadores de círculo
plt.show()

Límites de los Ejes

Puedes establecer los límites de los ejes x e y.

plt.plot(x, y)
plt.xlim(0, 6)
plt.ylim(0, 30)
plt.show()

Leyenda

Si tienes múltiples conjuntos de datos en el mismo gráfico, puedes añadir una leyenda.

y2 = [2, 3, 5, 7, 11]

plt.plot(x, y, label='Cuadrados')
plt.plot(x, y2, label='Primos')
plt.legend()
plt.show()

Añadir Texto y Anotaciones

Puedes añadir texto y anotaciones en puntos específicos del gráfico.

plt.plot(x, y)
plt.text(3, 9, 'Punto (3,9)', fontsize=12, color='red')
plt.annotate('Pico', xy=(4, 16), xytext=(3, 15), arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

Ejemplo Completo

A continuación, un ejemplo completo que combina varias configuraciones:

import matplotlib.pyplot as plt

# Datos
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
y2 = [2, 3, 5, 7, 11]

# Crear el gráfico con diferentes estilos y añadir etiquetas y título
plt.plot(x, y, 'b--o', label='Cuadrados') # Línea discontinua azul con marcadores de círculo
plt.plot(x, y2, 'r-^', label='Primos') # Línea continua roja con marcadores de triángulo

# Título y etiquetas de los ejes
plt.title("Comparación de Datos")
plt.xlabel("Eje X")
plt.ylabel("Valores")

# Límites de los ejes
plt.xlim(0, 6)
plt.ylim(0, 30)

# Añadir leyenda
plt.legend()

# Añadir texto y anotaciones
plt.text(3, 9, 'Punto (3,9)', fontsize=12, color='red')
plt.annotate('Pico', xy=(4, 16), xytext=(3, 15), arrowprops=dict(facecolor='black', shrink=0.05))

# Mostrar el gráfico
plt.show()

Resumen de Parámetros Comunes

  • plt.plot(x, y, ...): Crea el gráfico de líneas.
    • linestyle: Estilo de línea ('-', '--', '-.', ':').
    • marker: Tipo de marcador ('o', '^', 's', etc.).
    • color: Color de la línea ('b', 'g', 'r', etc.).
  • plt.title("Título"): Añade un título.
  • plt.xlabel("Eje X"): Etiqueta del eje X.
  • plt.ylabel("Eje Y"): Etiqueta del eje Y.
  • plt.xlim(min, max): Límites del eje X.
  • plt.ylim(min, max): Límites del eje Y.
  • plt.legend(): Muestra la leyenda.
  • plt.text(x, y, "texto"): Añade texto en una posición específica.
  • plt.annotate("texto", xy, xytext, arrowprops): Añade una anotación con una flecha.

Estos son algunos de los parámetros y funciones más comunes en Matplotlib. Con estos conocimientos, puedes comenzar a crear gráficos personalizados y profesionales para tus datos.