python matplotlib imshow()自定义标记

zje*_*zje 14 python plot matplotlib histogram

我正在尝试在我的imshow()输出上设置自定义刻度线,但是没有找到正确的组合.

下面的脚本总结了我的尝试.在这个脚本中,我试图在每个轴上的所有偶数上打勾,而不是默认值(-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()
Run Code Online (Sandbox Code Playgroud)

我开始觉得set_ticks()可能不是这样做的,但我不确定还有什么可以尝试.

谢谢!

ber*_*nie 15

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

plt.xticks(ticks)
Run Code Online (Sandbox Code Playgroud)

编辑:正如Yann在评论中提到的那样,您可能也会感兴趣 plt.yticks()

结果(使用plt.xticks(ticks, fontsize=9)): 在此输入图像描述

  • 或者`plt.gca().set_xticks(ticks)` (2认同)
  • +1 - 另外,我的猜测是OP正在寻找'set_xticks`和`set_yticks` (2认同)