Introducción
Contenido
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.
Te puede interesar:Uso de enlaces asíncronos para el manejo del contexto de solicitudes en Node.jsCambiar 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:
Te puede interesar:Manejo de CORS con Node.jsDependiendo 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.
Te puede interesar:Trabajar con imágenes en Node.js – GraphicsMagick e ImageMagickSi 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.
Te puede interesar:Escribir en archivos usando el comando cat en Linux