# graficos-con-python
Gráficos con Python
Volver a la portada del cursoPersonalización de Gráficos
Sección 2 · Profundizando en Matplotlib
Personalización de gráficos
Un gráfico con los valores por defecto casi nunca es el mejor gráfico posible. Personalizar no significa decorar: significa quitar lo que distrae y destacar lo que importa. Matplotlib permite controlar cada elemento, desde los colores y las fuentes hasta las marcas de los ejes y las anotaciones.
Estilos: un punto de partida coherente
Los estilos cambian de golpe la apariencia general de todos los gráficos: fondo, rejilla, colores y tamaños. Puedes consultar los disponibles con plt.style.available y aplicarlos con plt.style.use. Un estilo es la forma más rápida de lograr consistencia visual entre todos los gráficos de un informe.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
print(plt.style.available[:5])
plt.style.use("ggplot")
Colores, marcadores y tipos de línea
Cada serie se controla con parámetros como color, marker, linestyle y linewidth. Usa el color con intención: un color fuerte para la serie principal y tonos neutros para el contexto guían la mirada hacia lo importante.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 50)
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(x, np.sin(x), color="#2563EB", linewidth=2.5, label="Serie principal")
ax.plot(x, np.cos(x), color="#94A3B8", linestyle="--", label="Referencia")
ax.set_title("Destacar la serie importante", fontsize=14)
ax.legend(frameon=False)
fig.savefig("series.png", dpi=150)
Ejes, marcas y rejilla
Los límites de los ejes se fijan con set_xlim y set_ylim; las posiciones de las marcas, con set_xticks. Una rejilla suave facilita leer valores sin competir con los datos, y quitar los bordes superior y derecho aligera el gráfico.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.bar(["Lun", "Mar", "Mié", "Jue", "Vie"], [5, 8, 6, 9, 7], color="#22D3EE")
ax.set_ylim(0, 10)
ax.grid(axis="y", alpha=0.3)
ax.spines["top"].set_visible(False)
ax.spines["right"].set_visible(False)
fig.savefig("barras_limpias.png", dpi=150)
Anotaciones: contar la historia
Una anotación señala el punto que quieres que el lector vea. El método annotate coloca un texto con una flecha que apunta a una coordenada concreta, ideal para marcar un máximo, un cambio de tendencia o un evento.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
meses = list(range(1, 13))
valores = [3, 4, 4, 5, 7, 12, 9, 8, 7, 6, 5, 5]
fig, ax = plt.subplots()
ax.plot(meses, valores, marker="o")
ax.annotate("Pico de junio", xy=(6, 12), xytext=(8, 11.5),
arrowprops={"arrowstyle": "->"})
fig.savefig("anotacion.png", dpi=150)
Varios gráficos en una figura
Si quieres que todos tus gráficos compartan el mismo tamaño de letra o el mismo grosor de línea sin repetirlo en cada llamada, puedes modificar la configuración global con plt.rcParams, por ejemplo plt.rcParams["font.size"] = 12. Es útil cuando preparas muchas figuras para el mismo informe.
Con plt.subplots(filas, columnas) obtienes una cuadrícula de ejes. El parámetro sharey=True hace que compartan la escala vertical, lo que permite comparar paneles de forma honesta. Al terminar, guarda con dpi alto para que el gráfico se vea nítido en presentaciones.
Errores comunes
- Usar demasiados colores: más de cinco o seis series en un gráfico lo vuelven ilegible.
- Recortar el eje vertical de un gráfico de barras sin avisar, lo que exagera las diferencias.
- Poner títulos y etiquetas con letra diminuta; ajusta
fontsizepensando en quien lo verá. - Comparar paneles con escalas distintas sin usar
sharey.
Cierre
Estilos, colores con intención, ejes limpios y anotaciones precisas convierten un gráfico correcto en uno que comunica. Con estas herramientas estás listo para dar el salto a Seaborn, que aplica muchas de estas buenas prácticas de forma automática.