Estoy creando una figura en Matplotlib como esta:
from matplotlib import pyplot as plt
fig = plt.figure()
plt.plot(data)
fig.suptitle('test title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
fig.savefig('test.jpg')
Quiero especificar el tamaño de la fuente para el título de la figura y las etiquetas de los ejes. Necesito que los tres tengan diferentes tamaños de fuente, por lo que establecer un tamaño de fuente global (mpl.rcParams['font.size']=x
) no es lo que quiero. ¿Cómo puedo establecer el tamaño de la fuente para el título de la figura y las etiquetas de los ejes individualmente?
Las funciones que tratan el texto como label
, title
, etc. aceptan los mismos parámetros que matplotlib.text.Text. Para el tamaño de la fuente se puede utilizar size/fontsize
:
from matplotlib import pyplot as plt
fig = plt.figure()
plt.plot(data)
fig.suptitle('test title', fontsize=20)
plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=16)
fig.savefig('test.jpg')
Para establecer globalmente los tamaños de los títulos
y las etiquetas
, mpl.rcParams
contiene axes.titlesize
y axes.labelsize
. (De la página):
axes.titlesize : large # fontsize of the axes title
axes.labelsize : medium # fontsize of the x any y labels
(Por lo que puedo ver, no hay manera de establecer x
y y
tamaños de etiqueta por separado).
Y veo que axes.titlesize
no afecta a suptitle
. Supongo, que usted necesita para establecer que manualmente.
También puede hacerlo globalmente a través de un diccionario rcParams:
import matplotlib.pylab as pylab
params = {'legend.fontsize': 'x-large',
'figure.figsize': (15, 5),
'axes.labelsize': 'x-large',
'axes.titlesize':'x-large',
'xtick.labelsize':'x-large',
'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)
Si estás más acostumbrado a usar objetos ax
para hacer tus trazados, puede que encuentres el ax.xaxis.label.set_size()
más fácil de recordar, o al menos más fácil de encontrar usando el tabulador en un terminal de ipython. Parece que necesita una operación de redibujado después para ver el efecto. Por ejemplo:
import matplotlib.pyplot as plt
# set up a plot with dummy data
fig, ax = plt.subplots()
x = [0, 1, 2]
y = [0, 3, 9]
ax.plot(x,y)
# title and labels, setting initial sizes
fig.suptitle('test title', fontsize=12)
ax.set_xlabel('xlabel', fontsize=10)
ax.set_ylabel('ylabel', fontsize='medium') # relative to plt.rcParams['font.size']
# setting label sizes after creation
ax.xaxis.label.set_size(20)
plt.draw()
No sé de una manera similar para establecer el tamaño de suptitle después de que se crea.