Observação
Clique aqui para baixar o código de exemplo completo
Rotular subparcelas #
Rotular subparcelas é relativamente direto e varia, então o Matplotlib não possui um método geral para fazer isso.
O mais simples é colocar o rótulo dentro dos eixos. Observe que aqui usamos pyplot.subplot_mosaic
, e usamos os rótulos das subtramas como chaves para as subtramas, o que é uma boa conveniência. No entanto, o mesmo método funciona com pyplot.subplots
chaves diferentes daquelas com as quais você deseja rotular a subtrama.
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()
Podemos preferir os rótulos fora dos eixos, mas ainda alinhados entre si, caso em que usamos uma transformação ligeiramente diferente:
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 quisermos alinhar com o título, incorpore no título ou use o argumento de palavra-chave 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()
Referências
O uso das seguintes funções, métodos, classes e módulos é mostrado neste exemplo:
Tempo total de execução do script: ( 0 minutos 1.840 segundos)