Как прокомментировано, 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")
, открываем сохраненную картинку в Irfanview и отмечаем точку в (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 ]
и, следовательно, больше, чем полученные цифры.
Возможно, это не ответит на вопрос, но это все, что может, возможно, сказать здесь, с информацией из рассматриваемого вопроса.