Data Visualization

Dominando las Leyendas en Matplotlib: Guía Completa para el Control del Tamaño de Fuente

Spread the love

Matplotlib es una poderosa biblioteca de Python para crear visualizaciones. Las leyendas son esenciales para la claridad, y controlar su apariencia, especialmente el tamaño de la fuente, es crucial para una comunicación efectiva. Este artículo explora múltiples métodos para ajustar los tamaños de fuente de las leyendas en sus gráficos de Matplotlib, permitiéndole crear gráficos visualmente atractivos y fácilmente comprensibles.

Tabla de Contenido

Ajuste Global del Tamaño de Fuente de la Leyenda

Este método modifica el tamaño de la fuente para todas las leyendas dentro de su script. Es ideal para mantener tamaños de fuente consistentes en múltiples gráficos. Se logra esto modificando el diccionario rcParams.


import matplotlib.pyplot as plt
import matplotlib as mpl

# Establecer el tamaño de fuente globalmente
mpl.rcParams['legend.fontsize'] = 12

# Gráfico de muestra
plt.plot([1, 2, 3], [4, 5, 6], label='Línea 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Línea 2')

# Agregar leyenda
plt.legend()
plt.show()

Esto establece el tamaño de fuente de la leyenda en 12 puntos para todas las leyendas posteriores en su script. Recuerde que este cambio afecta a todas las leyendas globalmente.

Control del Tamaño de Fuente de la Leyenda Localmente

Para un control más localizado, especifique el tamaño de la fuente directamente dentro de la función plt.legend(). Esto le permite establecer diferentes tamaños de fuente para leyendas individuales.


import matplotlib.pyplot as plt

# Gráfico de muestra
plt.plot([1, 2, 3], [4, 5, 6], label='Línea 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Línea 2')

# Agregar leyenda con tamaño de fuente especificado
plt.legend(fontsize=14)
plt.show()

Esto establece el tamaño de fuente específicamente para esta leyenda en 14 puntos. Esto ofrece mayor flexibilidad en comparación con el método global rcParams.

Personalización Fina de la Leyenda

Para un control preciso, acceda directamente al objeto leyenda y modifique sus propiedades. Esto permite personalizaciones más complejas más allá del tamaño de la fuente.


import matplotlib.pyplot as plt

# Gráfico de muestra
plt.plot([1, 2, 3], [4, 5, 6], label='Línea 1')
plt.plot([1, 2, 3], [6, 4, 2], label='Línea 2')

# Agregar leyenda
legend = plt.legend()

# Acceder al texto de la leyenda y establecer el tamaño de fuente
for text in legend.get_texts():
    text.set_fontsize(16)

plt.show()

Esto itera a través de cada entrada de la leyenda y establece su tamaño de fuente individualmente. Útil para variar los tamaños de fuente dentro de una sola leyenda.

Conclusión

Este artículo presentó tres métodos para ajustar los tamaños de fuente de la leyenda de Matplotlib: configuraciones globales (rcParams), control local (plt.legend(fontsize=...)) y manipulación precisa de los objetos de leyenda. Seleccione el método que mejor se adapte a sus necesidades y estilo de codificación.

Preguntas Frecuentes

P: ¿Puedo ajustar otras propiedades de la fuente además del tamaño?

R: Sí, modifique la familia de fuentes, el estilo, el peso, etc., utilizando técnicas similares. Explore el módulo matplotlib.font_manager para más detalles. Por ejemplo, agregue fontweight='bold' a plt.legend() o use text.set_fontweight() en el tercer método.

P: Mi leyenda se superpone al gráfico. ¿Cómo puedo solucionarlo?

R: Use el argumento loc en plt.legend() para cambiar la ubicación de la leyenda, o posicione manualmente con legend.set_bbox_to_anchor(). Considere ajustar el tamaño del gráfico o reducir las entradas de la leyenda.

P: Mis cambios en el tamaño de fuente no se aplican. ¿Qué está mal?

R: Asegúrese de que se llame a plt.show() después de establecer el tamaño de fuente. Los conflictos con las configuraciones de fuente o las instalaciones desactualizadas de Matplotlib también pueden causar problemas. Intente reiniciar su kernel o actualizar Matplotlib.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *