2012-02-21 133 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