Curso de programación con Matplotlib
Matplotlib es la biblioteca esencial para la visualización de datos en Python. Crea gráficos y visualizaciones de alta calidad de manera sencilla y eficiente.
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
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
- Documentación oficial: matplotlib.org
Tutoriales de Matplotlib
Aprende Matplotlib con tutoriales de programación en Matplotlib.
Introducción E Instalación De Matplotlib
Introducción Y Entorno
Conceptos Básicos De Matplotlib
Introducción Y Entorno
Gráficos Univariantes
Creación De Gráficos
Gráficos Bivariantes
Creación De Gráficos
Gráficos Multivariantes
Creación De Gráficos
Títulos, Etiquetas Y Leyenda Y Límites
Personalización De Gráficos
Temas Predefinidos, Colores Y Estilos
Personalización De Gráficos
Ejes, Ajustes De Ejes
Personalización De Gráficos
Subplots Y Grillas
Personalización De Gráficos
Integración De Matplotlib Con Numpy
Integraciones
Integración De Matplotlib Con Pandas
Integraciones
Integración De Matplotlib Con Seaborn
Integraciones
Evaluación Test De Conocimientos
Evaluación Matplotlib
Evaluación Conocimiento De Código
Evaluación Matplotlib
Ejercicios de programación de Matplotlib
Evalúa tus conocimientos en Matplotlib con ejercicios de programación Matplotlib de tipo Test, Puzzle, Código y Proyecto con VSCode.
Evaluación código global
Integración de Matplotlib con Numpy
Evaluación test global
Análisis mercado de criptomonedas
Gráficos univariantes
Gráficos multivariantes
Conceptos básicos de Matplotlib
Análisis de ventas de videojuegos
Temas predefinidos, colores y estilos
Subplots y grillas
Gráficos bivariantes
Integración de Matplotlib con Pandas
Visualización de datos dataset iris
Introducción e instalación de Matplotlib
Ajuste de ejes en matplotlib
Integración de Matplotlib con Seaborn
Títulos, etiquetas y leyenda y límites
Tipo de tecnología
Biblioteca
Categoría laboral
Ciencia de Datos e Inteligencia artificial
Año de lanzamiento
2003
Developers
NumFOCUS
Todos los módulos de Matplotlib
Matplotlib
Introducción y entorno
Matplotlib
Creación de gráficos
Matplotlib
Personalización de gráficos
Matplotlib
Integraciones
Matplotlib
Evaluación Matplotlib
Otras tecnologías
Vuejs
Vuejs
Frontend
Framework de JS progresivo para construir interfaces de usuario reactivas y modulares.
Selenium
Selenium
Testing / QA (Quality Assurance)
Suite de herramientas open-source para automatizar navegadores web y pruebas de software de interfaz de usuario.
TypeScript
TypeScript
Full Stack
Superconjunto de JavaScript con tipado estático.
Java
Java
Backend
Lenguaje de programación versátil y multiplataforma.
Seaborn
Seaborn
Ciencia de Datos e Inteligencia artificial
Biblioteca de visualización de datos para Python.
CSharp
CSharp
Backend
Lenguaje de programación de Microsoft para aplicaciones robustas.
SpringBoot
SpringBoot
Backend
Framework para desarrollo rápido de aplicaciones Java.
Nest
Nest
Backend
Framework Node.js para crear aplicaciones escalables y eficientes.
Git
Git
DevOps
Sistema de control de versiones distribuido.
React
React
Frontend
Librería framework para frontend interfaces de usuario.
Docker
Docker
DevOps
Plataforma de contenedores para aplicaciones portátiles.
Go
Go
Backend
Lenguaje de programación eficiente y concurrente creado por Google.
SQL
SQL
Administración de bases de datos
Lenguaje para gestionar bases de datos relacionales.
TailwindCSS
TailwindCSS
Frontend
Framework de utilidades CSS para diseños rápidos y personalizables.
Kotlin
Kotlin
Backend
Lenguaje de programación moderno y seguro para aplicaciones Android.
HTML
HTML
Frontend
Lenguaje de marcado para estructurar contenido web.
Numpy
Numpy
Ciencia de Datos e Inteligencia artificial
Biblioteca Python para computación científica y matrices.
Bash
Bash
Administración de sistemas
Intérprete de comandos para sistemas Unix y Linux.