python matplotlib imshow() personnalisé les graduations

j'essaie de définir des marques de tique personnalisées sur ma sortie imshow (), mais je n'ai pas trouvé la bonne combinaison.

Le script ci-dessous résume mes tentatives. Dans ce script, j'essaie de faire les tickmarks à tous les nombres pairs sur chaque axe au lieu de la valeur par défaut (-10,-5,0,5,5,10)

#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np

#Generate random histogram
N=25
middle=N/2
hist=np.random.random_sample((N,N))

#Ticks at even numbers, data centered at 0
ticks=np.arange(-middle,middle+2,2)

extent=(-middle,middle,-middle,middle)
plt.imshow(hist, interpolation='nearest', extent=extent, origin='lower')
plt.colorbar()

#
#These are my attempts to set the tick marks
#
#plt.gcf().gca().set_ticks(ticks)

#plt.gca().set_ticks(ticks)

#ax=plt.axes()
#ax.set_ticks(ticks)

plt.show()

je commence à avoir le sentiment qu'set_ticks() peut ne pas être la façon de le faire, mais je ne sais plus quoi essayer.

Merci!

9
demandé sur zje 2012-02-21 22:00:56

1 réponses

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.xticks

plt.xticks(ticks)

Edit: comme Yann le mentionne dans un commentaire, vous pourriez aussi être intéressé par plt.yticks()

Résultat (en utilisant plt.xticks(ticks, fontsize=9)): enter image description here

12
répondu bernie 2012-02-21 18:45:36