python - font - ¿Cómo establecer un único título principal sobre todas las subtramas con Pyplot?
subplot title python (3)
Algunos puntos que encuentro útiles al aplicar esto a mis propios argumentos:
- Prefiero la consistencia de usar
fig.suptitle(title)
lugar deplt.suptitle(title)
- Al usar
fig.tight_layout()
el título debefig.subplots_adjust(top=0.88)
config.subplots_adjust(top=0.88)
- Vea la respuesta a below sobre fontsizes
Código de ejemplo tomado de la demo de subplots en matplotlib docs y ajustado con un título maestro.
import matplotlib.pyplot as plt
import numpy as np
# Simple data to display in various forms
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
fig, axarr = plt.subplots(2, 2)
fig.suptitle("This Main Title is Nicely Formatted", fontsize=16)
axarr[0, 0].plot(x, y)
axarr[0, 0].set_title(''Axis [0,0] Subtitle'')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title(''Axis [0,1] Subtitle'')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title(''Axis [1,0] Subtitle'')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title(''Axis [1,1] Subtitle'')
# # Fine-tune figure; hide x ticks for top plots and y ticks for right plots
plt.setp([a.get_xticklabels() for a in axarr[0, :]], visible=False)
plt.setp([a.get_yticklabels() for a in axarr[:, 1]], visible=False)
# Tight layout often produces nice results
# but requires the title to be spaced accordingly
fig.tight_layout()
fig.subplots_adjust(top=0.88)
plt.show()
Estoy usando pyplot
. Tengo 4 subtramas. ¿Cómo establecer un único título principal sobre todas las subtramas? title()
establece sobre la última subparcela.
Si tus subtramas también tienen títulos, es posible que debas ajustar el tamaño del título principal:
plt.suptitle("Main Title", size=16)
Utilice pyplot.suptitle
o Figure.suptitle
:
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
data=np.arange(900).reshape((30,30))
for i in range(1,5):
ax=fig.add_subplot(2,2,i)
ax.imshow(data)
fig.suptitle(''Main title'') # or plt.suptitle(''Main title'')
plt.show()