发布于 2020-01-19 03:45:15
正如注释所指出的,ax.transData.inverted().transform(x)确实给出了以像素为单位定义的x的数据坐标。
所以我们跑
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
points, = ax.plot(range(10), 'ro')
ax.axis([-1, 10, -1, 10])
fig.savefig("test.png")在in视图中打开保存的图片,并将点标记为(0,0)。

如图像所示,它位于(126, 86)像素处。所以插入这个元组
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
points, = ax.plot(range(10), 'ro')
ax.axis([-1, 10, -1, 10])
x = 126, 86
point = ax.transData.inverted().transform(x)
print(point)我们会得到
[ 0.02016129 -0.01190476]它尽可能接近于(0,0),假设像素分辨率是
x2 = 125, 85
point2 = ax.transData.inverted().transform(x2)
print(point - point2)
[0.02217742 0.0297619 ]因此比那些得到的数字要大。
这可能不能回答这个问题,但这是我们在这里所能说的全部,因为有了这个问题的信息。
https://stackoverflow.com/questions/59794014
复制相似问题