Как я могу преобразовать координаты графика, где 0,0 - левый нижний угол, а 1,1 - верхний правый, в координаты значений X и Y, показанных на графике ниже?
Чего я хочу добиться, так это нарисовать метки A, V, U, I и M в верхней части графика, примерно на высоте, где находится метка «Дополнительная информация», но сохранить положение X. Количество точек на графике регрессии будет различным, поэтому его нельзя будет жестко закодировать.
Я пытался использовать transData и transAxes, которые описаны здесь https://matplotlib.org/tutorials/advanced/transforms_tutorial.html,, но я не смог преобразовать в способ, который здесь преобразует координату Y от 0,8 до приблизительно 26.
Преобразование в обратном направлении также будет работать, но тогда потребуется преобразовать координату X, т. Е. От 2,5 до 0,2.
import seaborn as sns
import numpy as np
import pandas as pd
status = ['A', 'V', 'U', 'I', 'M']
x_array = np.array([2, 4, 6, 8, 10])
y_array = np.array([5, 9, 15, 21, 27])
x, y = pd.Series(x_array, name="Values X"), pd.Series(y_array, name="Values Y")
ax_regplot = sns.regplot(x=x, y=y, scatter=True)
ax_regplot.set_title("My plot")
ax_regplot.figure.text(0.2, 0.8, "Additional Information", fontsize=8)
for i in range(len(x_array)):
x_coordinate = x_array[i]
y_coordinate = y_array[i]
ax_regplot.text(x_coordinate, y_coordinate, status[i])
ax_regplot.figure.savefig("my_plot.png")