当您使用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 =”。
有没有办法让坐标显示在由刻度线定义的新单位中?我认为这与设置轴的变换有关,但我无法弄明白。
答案 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()