Nota
Fare clic qui per scaricare il codice di esempio completo
Sottotrame di etichettatura #
L'etichettatura delle sottotrame è relativamente semplice e varia, quindi Matplotlib non ha un metodo generale per farlo.
Il più semplice è inserire l'etichetta all'interno degli assi. Nota, qui usiamo pyplot.subplot_mosaic
, e usiamo le etichette delle sottotrame come chiavi per le sottotrame, il che è una bella comodità. Tuttavia, lo stesso metodo funziona con pyplot.subplots
o con chiavi diverse da quelle con cui vuoi etichettare la sottotrama.
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']],
constrained_layout=True)
for label, ax in axs.items():
# label physical distance in and down:
trans = mtransforms.ScaledTranslation(10/72, -5/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', verticalalignment='top', fontfamily='serif',
bbox=dict(facecolor='0.7', edgecolor='none', pad=3.0))
plt.show()
Potremmo preferire le etichette fuori dagli assi, ma ancora allineate tra loro, nel qual caso usiamo una trasformazione leggermente diversa:
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']],
constrained_layout=True)
for label, ax in axs.items():
# label physical distance to the left and up:
trans = mtransforms.ScaledTranslation(-20/72, 7/72, fig.dpi_scale_trans)
ax.text(0.0, 1.0, label, transform=ax.transAxes + trans,
fontsize='medium', va='bottom', fontfamily='serif')
plt.show()
Se vogliamo che sia allineato con il titolo, incorporalo nel titolo o usa l' argomento della parola chiave loc :
fig, axs = plt.subplot_mosaic([['a)', 'c)'], ['b)', 'c)'], ['d)', 'd)']],
constrained_layout=True)
for label, ax in axs.items():
ax.set_title('Normal Title', fontstyle='italic')
ax.set_title(label, fontfamily='serif', loc='left', fontsize='medium')
plt.show()
Riferimenti
L'uso delle seguenti funzioni, metodi, classi e moduli è mostrato in questo esempio:
Tempo di esecuzione totale dello script: (0 minuti 1.840 secondi)