Cambiar el tamaño de fuente en Matplotlib

En este tutorial, veremos cómo cambiar el tamaño de fuente en un diagrama de Matplotlib. Usaremos el argumento tamaño de fuente, así como modificaremos los parámetros rc para cambiar el estilo.

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 de cambiar el tamaño de las fuentes en Matplotlib. Puedes establecer el argumento fontsize, cambiar cómo Matplotlib trata las fuentes en general, o incluso cambiar el tamaño de la figura.

Primero vamos a crear un gráfico simple en el que querremos cambiar el tamaño de las fuentes:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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')
ax.set_title('Sine and cosine waves')
ax.set_xlabel('Time')
ax.set_ylabel('Intensity')
leg = ax.legend()

plt.show()

matplotlib plot

Cambiar el tamaño de fuente usando fontsize

Probemos la opción más simple. Cada función que trata con texto, como Título, etiquetas y todas las demás funciones textuales aceptan un argumento: tamaño de fuente.

Revisemos el código anterior y especifiquemos un tamaño de fuente para estos elementos:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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')
ax.set_title('Sine and cosine waves', fontsize=20)
ax.set_xlabel('Time', fontsize=16)
ax.set_ylabel('Intensity', fontsize=16)
leg = ax.legend()

plt.show()

Aquí, hemos configurado el tamaño de fuente para el título, así como las etiquetas para el tiempo y la intensidad. Ejecutar este código produce:

matplotlib fontsize argument

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

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

Esto cambiará el tamaño de la 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:

matplotlib change legend font size

Sin embargo, si bien podemos configurar 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 globalmente.

Cambiar el tamaño de fuente globalmente

Hay dos formas en que podemos establecer el tamaño de fuente globalmente. Querremos configurar el parámetro font_size a un nuevo tamaño. Podemos llegar a este parámetro a través de rcParams['font.size'].

Una forma es modificarlos directamente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
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()

Debe establecer estos antes de la llamada a la función plot(), ya que si intenta aplicarlos después, no se realizará ningún cambio. Este enfoque cambiará todo lo que esté especificado como fuente por el objeto font kwargs.

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

matplotlib change font size rc params

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 esto no cambia el tamaño de las etiquetas, puede usar la función set() pasando un tamaño de fuente o usar la función set_fontsize():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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:

matplotlib change font size xtick and label

Conclusión

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

Si está interesado en Visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro paquete de libros en [Visualización de datos en Python](https://gum.co/data-visualization -en-paquete-de-libros-de-python):

Visualización de datos en Python Descuento por tiempo limitado: 2 por 1, ¡ahorra un 50 %! ✅ Garantía de devolución de dinero de 30 días sin preguntas ✅ Principiante a Avanzado ✅ Actualizado periódicamente de forma gratuita (última actualización en abril de 2021) ✅ Actualizado con recursos y guías adicionales

Visualización de datos en Python con Matplotlib y Pandas es un libro diseñado para llevar a los principiantes absolutos a Pandas y Matplotlib, con conocimientos básicos de Python, y permitirles construir una base sólida para el trabajo avanzado con estas bibliotecas, desde gráficos simples. a gráficos 3D animados con botones interactivos.

Sirve como una guía detallada que le enseñará todo lo que necesita saber sobre Pandas y Matplotlib, incluido cómo construir tipos de gráficos que no están integrados en la propia biblioteca.

Visualización de datos en Python, un libro para desarrolladores principiantes e intermedios de Python, lo guía a través de la manipulación de datos simple con Pandas, cubre bibliotecas de trazado centrales como Matplotlib y Seaborn, y le muestra cómo aprovechar las bibliotecas declarativas y experimentales. como Altair. Más específicamente, a lo largo de 11 capítulos, este libro cubre 9 bibliotecas de Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas y VisPy.

Sirve como una guía práctica única para la visualización de datos, en una plétora de herramientas que podría usar en su carrera.