2012-02-21 75 views
8

我想在我的imshow()输出上设置自定义刻度标记,但还没有找到正确的组合。python matplotlib imshow()自定义tickmarks

下面的脚本总结了我的尝试。在这个脚本中,我试图让刻度线都连在每个轴上,而不是默认的数字(-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() 

我开始明白了感觉set_ticks()可能不是实现它的方式,但我不确定还有什么可以尝试的。

谢谢!

回答

12

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

plt.xticks(ticks) 

编辑:作为晏在评论中提到,你也可以(用plt.xticks(ticks, fontsize=9))有兴趣在plt.yticks()

结果: enter image description here

+2

或'plt.gca() .set_xticks(ticks)' – steabert 2012-02-21 18:22:00

+2

+1 - 另外,我的猜测是OP正在寻找'set_xticks'和'set_yticks' – Yann 2012-02-21 18:34:48

+0

正是我在找什么......不确定h我错过了,谢谢! – zje 2012-02-21 22:03:55