Matplotlib

Matplotlib
Matplotlib
Actualizado: 03/04/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Descripción del curso

Matplotlib es una biblioteca de Python especializada en la generación de gráficos y visualizaciones de datos. Es ampliamente utilizada en ciencia de datos, ingeniería y disciplinas que requieren análisis visual.

¿Qué es Matplotlib?

Matplotlib proporciona una interfaz para crear gráficos estáticos, animados e interactivos en Python. Se inspira en MATLAB, ofreciendo una sintaxis similar para aquellos familiarizados con ese entorno. Permite generar una amplia variedad de gráficos, desde simples gráficos de líneas hasta visualizaciones complejas en 3D.

Instalación de Matplotlib

Para instalar Matplotlib, se utiliza el gestor de paquetes pip:

pip install matplotlib

O, si se utiliza Anaconda:

conda install matplotlib

Estructura básica de un gráfico en Matplotlib

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Figura y ejes

En Matplotlib, todo gráfico se compone de una figura que contiene uno o varios ejes. La figura es el contenedor principal, mientras que los ejes son las áreas donde se dibujan los datos.

Ejemplo de creación de una figura y ejes:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()

Creación de gráficos simples

Gráfico de líneas

Un gráfico de líneas es útil para mostrar tendencias a lo largo de un eje, generalmente el tiempo.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 17, 20]

plt.plot(x, y)
plt.xlabel('Tiempo')
plt.ylabel('Valor')
plt.title('Gráfico de líneas simple')
plt.show()

Gráfico de dispersión

Visualiza la relación entre dos variables numéricas.

import matplotlib.pyplot as plt

x = [5, 7, 8, 2, 17]
y = [99, 86, 87, 88, 111]

plt.scatter(x, y)
plt.xlabel('Edad')
plt.ylabel('Ingresos')
plt.title('Gráfico de dispersión')
plt.show()

Gráfico de barras

Se utiliza para comparar cantidades entre diferentes categorías.

import matplotlib.pyplot as plt

categorias = ['A', 'B', 'C', 'D']
valores = [4, 7, 1, 8]

plt.bar(categorias, valores)
plt.xlabel('Categorías')
plt.ylabel('Valores')
plt.title('Gráfico de barras')
plt.show()

Gráfico de pastel

Muestra proporciones de un todo.

import matplotlib.pyplot as plt

secciones = [35, 25, 25, 15]
etiquetas = ['Manzanas', 'Bananas', 'Cerezas', 'Dátiles']

plt.pie(secciones, labels=etiquetas, autopct='%1.1f%%')
plt.title('Gráfico de pastel')
plt.show()

Personalización de gráficos

Títulos y etiquetas

Es importante añadir títulos y etiquetas para facilitar la interpretación.

plt.title('Título del gráfico')
plt.xlabel('Etiqueta del eje X')
plt.ylabel('Etiqueta del eje Y')

Leyendas

Se utilizan para identificar diferentes conjuntos de datos en un mismo gráfico.

plt.plot(x1, y1, label='Datos 1')
plt.plot(x2, y2, label='Datos 2')
plt.legend()

Estilos y colores

Matplotlib ofrece estilos predefinidos y la posibilidad de personalizar colores.

plt.style.use('ggplot')
plt.plot(x, y, color='red', linewidth=2, linestyle='--')

Subplots (múltiples gráficos en una figura)

Permiten mostrar varios gráficos en una sola figura.

fig, axs = plt.subplots(2, 2)

axs[0, 0].plot(x, y)
axs[0, 0].set_title('Gráfico 1')

axs[0, 1].bar(categorias, valores)
axs[0, 1].set_title('Gráfico 2')

axs[1, 0].scatter(x, y)
axs[1, 0].set_title('Gráfico 3')

axs[1, 1].pie(secciones, labels=etiquetas)
axs[1, 1].set_title('Gráfico 4')

plt.tight_layout()
plt.show()

Trabajando con fechas y tiempos

Matplotlib facilita la representación de datos temporales.

import matplotlib.dates as mdates
import datetime

fechas = [datetime.datetime(2021, 1, i+1) for i in range(10)]
valores = [i**2 for i in range(10)]

plt.plot(fechas, valores)
plt.gcf().autofmt_xdate()
plt.show()

Anotaciones y textos en los gráficos

Para resaltar puntos específicos o añadir notas.

plt.plot(x, y)
plt.annotate('Punto importante', xy=(2, 15), xytext=(3, 20),
             arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

Guardar gráficos en diferentes formatos

Es posible exportar gráficos a archivos de imagen.

plt.savefig('grafico.png')
plt.savefig('grafico.pdf')

Integración con pandas

Matplotlib se integra bien con pandas para visualizar datos de DataFrames.

import pandas as pd

df = pd.DataFrame({
    'Año': [2018, 2019, 2020, 2021],
    'Ventas': [250, 300, 400, 350]
})

df.plot(x='Año', y='Ventas', kind='bar')
plt.show()

Uso avanzado

Gráficos 3D

Matplotlib permite crear gráficos en tres dimensiones.

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = [1, 2, 3, 4]
y = [10, 15, 13, 17]
z = [5, 6, 7, 8]

ax.plot3D(x, y, z)
plt.show()

Gráficos interactivos

Con herramientas como %matplotlib notebook en Jupyter Notebook o utilizando bibliotecas como ipywidgets.

%matplotlib notebook
plt.plot(x, y)
plt.show()

Mejores prácticas

Organización del código

Separar la generación de datos de la visualización mejora la legibilidad.

def generar_datos():
    # Código para generar datos
    pass

def crear_grafico(x, y):
    plt.plot(x, y)
    plt.show()

x, y = generar_datos()
crear_grafico(x, y)

Reutilización de funciones

Crear funciones para gráficos reutilizables.

def grafico_personalizado(x, y, titulo):
    plt.plot(x, y)
    plt.title(titulo)
    plt.show()

Recursos adicionales

Completa Matplotlib y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración