如何用我的imshow情节设置xticks和yticks?

时间:2016-04-05 21:42:18

标签: python matplotlib

我的代码

import numpy as np
import matplotlib.pyplot as plt

with open('nm.dat','r') as f:
    vst = map(float, f)

print vst    

a=np.asarray(vst)
print len(a)

a11=a.reshape(4,22)

plt.imshow(a11, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.show()

我的形象 enter image description here

我希望我的x轴标有等距的0,8,16,24,32,40,48,56,64,72,80,88 ticks.Y轴为0,2,4,6, 8。 怎么解决这个?

1 个答案:

答案 0 :(得分:8)

您在imshow中缺少范围参数。 imshow假设像素与您的“物理”单位之间存在线性关系。你可以使用:

plt.imshow(a11, cmap='hot', interpolation='nearest', extent=[0,88,0,8], origin='lower')

必须给出范围变量,使得范围= [xmin,xmax,ymin,ymax]。 origin ='lower'参数用于指定必须将[0,0]坐标放置在轴的左下角。否则,它位于轴的左上角。

最后,为了只显示某些特定的刻度,您可能需要使用:

ax = plt.gca()
xticks = [0,8,16,24,32,40,48,56,64,72,80,88]
yticks = [0,2,4,6,8]
ax.xaxis.set_xticks(xticks)
ax.xaxis.set_yticks(yticks)