Si je trace une seule parcelle imshow
, je peux utiliser
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
pour remplacer mes étiquettes xtick.
Maintenant, je trace 12 parcelles imshow
en utilisant
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
Comment puis-je changer mes xticks uniquement pour l'une de ces sous-parcelles? Je ne peux accéder aux axes des sous-parcelles avec axarr[i, j]
. Comment puis-je accéder à plt
pour une sous-parcelle en particulier?
Il y a deux manières:
ax.set_xticks
et ax.set_xticklabels
) ouplt.sca
pour définir les axes actuels de la machine à états pyplot (à savoir l'interface plt
).À titre d'exemple (ceci illustre également l'utilisation de setp
pour modifier les propriétés de toutes les sous-parcelles):
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=3, ncols=4)
# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
yticks=[1, 2, 3])
# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')
fig.tight_layout()
plt.show()
Voir le (assez) récent answer sur le référentiel matplotlib, dans lequel la solution suivante est suggérée:
ax.set_xticklabels([1,4,5], fontsize=12)
ax.tick_params(axis="x", labelsize=12)
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", horizontalalignment="left")
Comme dans la dernière version de Matplotlib, les fonctions set_yticks
et set_xticks
sont supprimées. Au lieu de définir la taille de x, y ticks, j’ai simplement changé la taille de la figure.
plt.figure(1, dpi=200, figsize=(20,20))
Je sais que c'est un peu anti-intuitif mais c'est ce qui a fonctionné pour moi ... Dites-moi s'il existe de meilleures méthodes pour résoudre ce problème dans les versions ultérieures de Matplotlib. Merci