Python xticks dans les sous-lots

Si j'ai tracé un seul imshow plot 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 suis de traçage 12 imshow parcelles à l'aide de

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)

Comment puis-je changer mes xticks juste pour un de ces sous-lots? Je ne peux accéder aux axes des sous-lots qu'avec axarr[i, j]. Comment puis-je accéder à plt juste pour un particulier intrigue secondaire?

40
demandé sur Mel 2013-10-28 06:56:14

2 réponses

Il y a deux façons:

  1. utilisez les méthodes axes de l'objet subplot (par exemple ax.set_xticks et ax.set_xticklabels) ou
  2. Utiliser plt.sca pour définir les axes actuels de la machine d'état (c'est-à-dire le plt interface).

comme exemple (ceci illustre aussi l'utilisation de setp pour modifier les propriétés de tous 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()

enter image description here

92
répondu Joe Kington 2013-10-28 03:15:34

semble comme dans la dernière version de Matplotlib, le set_yticks et set_xticks les fonctions sont supprimées. Ce que j'ai fait, c'est qu'au lieu de mettre la taille de x,y tics, j'ai juste 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... Laissez-moi savoir si il y a de meilleures méthodes pour résoudre ce problème dans les versions ultérieures de Matplotlib. Merci

0
répondu David Wang 2018-05-22 04:24:28