Matplotlib imshow:指定刻度时光标坐标失败

时间:2016-02-08 22:11:36

标签: python python-2.7 matplotlib imshow

当您使用imshow在窗口的右下角绘制图像时,光标的坐标会显示出来。但是,当我尝试设置轴的刻度和刻度标签时,窗口停止显示坐标,只显示“x = y =”

最小例子:

import matplotlib.pyplot as plt
import numpy as np

d = np.random.rand(100, 100)

fig = plt.figure()
ax = plt.gca()
plt.imshow(d)

# If I comment this I get coordinates in the bottom right,
# but after setting the ticks I only get "x= y="
ax.set_xticks([0, 25, 50, 75, 100])
ax.set_xticklabels([0, 0.25, 0.5, 0.75, 1])
ax.set_yticks([0, 25, 50, 75, 100])
ax.set_yticklabels([0, 0.25, 0.5, 0.75, 1])

fig.show()
raw_input()

显示数据的随机地图,并将刻度标签设置为0到1,但右下角的光标坐标仅显示“x = y =”。

有没有办法让坐标显示在由刻度线定义的新单位中?我认为这与设置轴的变换有关,但我无法弄明白。

1 个答案:

答案 0 :(得分:1)

你应该使用"范围"在调用" imshow":

时的争论
import matplotlib.pyplot as plt
import numpy as np

d = np.random.rand(100, 100)

fig = plt.figure()
ax = plt.gca()
plt.imshow(d, extent=(0,1,1,0))

ax.set_xticks([0, 0.25, 0.50, 0.75, 1])
ax.set_yticks([0, 0.25, 0.50, 0.75, 1])

fig.show()
raw_input()