Cambiar el tamaño de fuente en Matplotlib

C

 

Introducción

Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalización: puede modificar casi cualquier elemento de su jerarquía de objetos.

En este tutorial, veremos cómo cambiar el tamaño de fuente en Matplotlib.

Cambiar el tamaño de fuente en Matplotlib

Hay algunas formas en que puede cambiar el tamaño de las fuentes en Matplotlib. Puede configurar el fontsize argumento, cambiar la forma en que Matplotlib trata las fuentes en general, o incluso cambiar el tamaño de la figura.

Primero creemos un diagrama simple en el que queremos cambiar el tamaño de las fuentes:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

ax.plot(y, color="blue", label="Sine wave")
ax.plot(z, color="black", label="Cosine wave")
fig.suptitle('Sine and cosine waves')
plt.xlabel('Time')
plt.ylabel('Intensity')
leg = ax.legend()

plt.show()

Cambiar tamaño de fuente usando tamaño de fuente

Probemos la opción más sencilla. Cada función que se ocupa de texto, como suptitle(), xlabel() y todas las demás funciones textuales aceptan un argumento – fontsize.

Revisemos el código de antes y especifiquemos un fontsize para estos elementos:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

ax.plot(y, color="blue", label="Sine wave")
ax.plot(z, color="black", label="Cosine wave")
fig.suptitle('Sine and cosine waves', fontsize=20)
plt.xlabel('Time', fontsize=16)
plt.ylabel('Intensity', fontsize=16)
leg = ax.legend()

plt.show()

Aquí, hemos configurado el fontsize Para el suptitle así como las etiquetas de tiempo e intensidad. Ejecutar este código produce:

También podemos cambiar el tamaño de la fuente en la leyenda agregando el prop argumento y estableciendo el tamaño de fuente allí:

leg = ax.legend(prop={"size":16})

Esto cambiará el tamaño de fuente, que en este caso también mueve la leyenda hacia la parte inferior izquierda para que no se superponga con los elementos de la parte superior derecha:

Sin embargo, aunque podemos establecer cada tamaño de fuente de esta manera, si tenemos muchos elementos textuales y solo queremos un tamaño general uniforme, este enfoque es repetitivo.

En tales casos, podemos pasar a configurar el tamaño de fuente de forma global.

Cambiar el tamaño de fuente globalmente

Hay dos formas de establecer el tamaño de fuente de forma global. Queremos configurar el font_size parámetro a un nuevo tamaño. Podemos llegar a este parámetro a través de rcParams['font.size'].

Una forma es modificarlos directamente:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

plt.rcParams['font.size'] = '16'

ax.plot(y, color="blue", label="Sine wave")
ax.plot(z, color="black", label="Cosine wave")
plt.xlabel('Time')
plt.ylabel('Intensity')
fig.suptitle('Sine and cosine waves')
leg = ax.legend()

plt.show()

Tienes que configurarlos antes del plot() llamada a la función ya que si intenta aplicarlos posteriormente, no se realizarán cambios. Este enfoque cambiará todo lo especificado como fuente por el font objeto kwargs.

Sin embargo, cuando ejecutamos este código, es obvio que las marcas xey, ni las etiquetas xey no cambiaron de tamaño:

Dependiendo de la versión de Matplotlib que esté ejecutando, no podrá cambiarlos con los parámetros rc. Usarías axes.labelsize y xtick.labelsize/ytick.labelsize para ellos respectivamente.

Si configurar estos no cambia el tamaño de las etiquetas, puede utilizar el set() función pasando en un fontsize o usa el set_fontsize() función:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)

# Set general font size
plt.rcParams['font.size'] = '16'

# Set tick font size
for label in (ax.get_xticklabels() + ax.get_yticklabels()):
	label.set_fontsize(16)
	
ax.plot(y, color="blue", label="Sine wave")
ax.plot(z, color="black", label="Cosine wave")
plt.xlabel('Time', fontsize=16)
plt.ylabel('Intensity', fontsize=16)

fig.suptitle('Sine and cosine waves')
leg = ax.legend()

plt.show()

Esto resulta en:

Conclusión

En este tutorial, hemos repasado varias formas de cambiar el tamaño de las fuentes en Matplotlib.

Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.

Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.

 

Visualización de datos en Python

¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad