Tutoriales Interactivos
BlogIniciar sesiónComenzar gratis
Inicio›Blog›Visualización de Datos›Cómo personalizar gráficos con matplotlib

Cómo personalizar gráficos con matplotlib

Un gráfico con los valores predeterminados de matplotlib comunica los datos, pero no destaca. Personalizar colores, estilos de línea, marcadores y leyendas no es decoración — cada decisión de estilo debería servir un propósito: diferenciar series, resaltar lo importante o facilitar la lectura.

Estilos de línea

Distintos estilos de línea pueden representar distintos tipos de datos:

import matplotlib.pyplot as plt

meses = range(1, 13)
ventas_reales = [30, 28, 35, 42, 50, 48, 55, 52, 45, 40, 38, 60]
proyeccion = [32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54]

plt.plot(meses, ventas_reales, linestyle='-', label='Ventas reales')
plt.plot(meses, proyeccion, linestyle='--', label='Proyección')
plt.title('Ventas vs Proyección')
plt.legend()
plt.show()

Los estilos disponibles:

CódigoEstiloUso típico
'-'SólidaDatos reales, serie principal
'--'DiscontinuaProyecciones, estimaciones
':'PunteadaPromedios, referencias
'-.'Punto-rayaSeries secundarias

Marcadores

Los marcadores resaltan los puntos individuales de datos en una línea:

import matplotlib.pyplot as plt

dias = [1, 2, 3, 4, 5, 6, 7]
temperatura = [18, 20, 22, 19, 24, 23, 21]

plt.plot(dias, temperatura, marker='o', color='#e17055')
plt.title('Temperatura diaria')
plt.xlabel('Día')
plt.ylabel('°C')
plt.show()

Marcadores comunes:

CódigoForma
'o'Círculo
's'Cuadrado
'^'Triángulo
'D'Diamante

Son útiles cuando tienes pocos puntos y quieres que cada uno sea visible, o cuando necesitas diferenciar series sin depender solo del color.

Grosor de línea

linewidth controla el grosor. Una línea más gruesa atrae más la atención:

plt.plot(meses, ventas_reales, linewidth=2.5, label='Ventas reales')
plt.plot(meses, proyeccion, linewidth=1, linestyle='--', label='Proyección')

La serie principal más gruesa y la referencia más delgada crea una jerarquía visual clara.

Leyendas

Cuando hay más de una serie, la leyenda es obligatoria:

import matplotlib.pyplot as plt

meses = range(1, 7)
producto_a = [10, 15, 13, 18, 20, 22]
producto_b = [8, 10, 14, 12, 16, 19]

plt.plot(meses, producto_a, label='Producto A', color='#0984e3', marker='o')
plt.plot(meses, producto_b, label='Producto B', color='#e17055', marker='s')
plt.title('Ventas por producto')
plt.xlabel('Mes')
plt.ylabel('Unidades')
plt.legend()
plt.show()

Cada plt.plot() necesita un label= que identifique la serie. Luego plt.legend() muestra el recuadro con los colores y nombres.

Grillas

Las grillas facilitan la lectura de valores exactos:

plt.grid(True, linestyle='--', alpha=0.5)

alpha=0.5 hace la grilla semitransparente para que no compita visualmente con los datos. Siempre usa grillas sutiles — si son más notorias que los datos, distraen.

Errores frecuentes

Personalizar sin propósito: cada elemento visual debe comunicar algo. Si dos líneas son del mismo tipo de dato, dales el mismo estilo. Si una es proyección y otra es dato real, diferencialas con estilo de línea.

Demasiados marcadores con muchos datos: si tienes 100 puntos, los marcadores se superponen y generan ruido. Usa marcadores solo con pocos puntos de datos.

Leyenda que tapa los datos: por defecto matplotlib ubica la leyenda donde menos moleste, pero a veces necesitas moverla con plt.legend(loc='upper left') u otra posición.

Aprende haciendo, no solo leyendo

Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de Visualización de Datos y recibes corrección inmediata de IA.

Comenzar gratis →
Desafío Latam
+56 9 5117 7975
+52 1 55 4047 7251
[email protected]

Carreras

  • Full Stack JavaScript
  • Diseño UX/UI
  • Data Science
  • Data Analytics

Comunidad

  • Blog
  • Becas
  • Trabaja con Nosotros
  • Políticas de Calidad

Síguenos

© 2026 Desafío Latam. Todos los derechos reservados.