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

Ric*_*lev 6 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()
Run Code Online (Sandbox Code Playgroud)

我的形象 在此输入图像描述

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

Ale*_*dro 9

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

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

必须给出范围变量,使得extent = [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)
Run Code Online (Sandbox Code Playgroud)