2012-02-21 30 views
8

Estoy tratando de establecer marcas personalizadas en mi salida imshow(), pero no he encontrado la combinación correcta.python matplotlib imshow() marcas personalizadas

El siguiente script resume mis intentos. En este guión, que estoy tratando de hacer que las marcas de división en todos los números pares en cada eje en lugar del predeterminado (-10), -5,0,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() 

estoy empezando a obtener el sintiendo que set_ticks() podría no ser la manera de hacerlo, pero no estoy seguro de qué más probar.

Gracias!

Respuesta

12

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

plt.xticks(ticks) 

Editar: Yann como se menciona en un comentario, también podría estar interesado en plt.yticks()

Resultado (usando plt.xticks(ticks, fontsize=9)): enter image description here

+2

o 'plt.gca() .set_xticks (ticks) ' – steabert

+2

+1 - Además, supongo que el OP estaba buscando' set_xticks' y 'set_yticks' – Yann

+0

Exactamente lo que estaba buscando ... no estoy seguro h ¡Cómo lo extrañé, gracias! – zje

Cuestiones relacionadas