Python Matplotlib imshow() 自定义刻度标记

20

我正在尝试在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()

我开始觉得使用 set_ticks() 可能不是正确的方法,但是我不知道还有什么其他尝试的方式。

谢谢!

1个回答

19

4
或者 plt.gca().set_xticks(ticks) - steabert
3
+1 - 我猜OP想要的是set_xticksset_yticks两个函数。 - Yann
1
为了让像我这样的人不再需要搜索:上面的“ticks”是一个列表/数组,而不是整数。 - Johan Dettmar
@JohanDettmar:感谢您添加了那个,我已经更新了答案以包含该信息。 - mechanical_meat
如果我想要将刻度变成字符串,该怎么办? - seeker_after_truth
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接