Чтобы ответить на ваш последний вопрос, термин нормализация не зависит от matplotlib, вы можете получить очень краткое вступление из wikipedia .
Что касается Matplotlib: у вас могут быть разные системы координат относительно разных объектов (например, оси, фигуры).Каждая из этих систем нормализуется в том смысле, что 4 угла выбранного эталонного объекта всегда будут иметь следующие координаты:
(0,1) Top left corner
(1,1) Top right corner
(1,0) Bottom right corner
(0,0) Bottom left corner
Где первый элемент каждой пары относится к x-axis
, а второйЭлемент ссылается на y-axis
.
Это упрощает, среди прочего, аннотацию или размещение объектов художника, так как вы можете указать положение элемента, который вы хотите добавить, используя любую из доступных систем координат.Все, что вам нужно сделать, это выбрать соответствующую систему координат, передав объект преобразования в параметр преобразования.
Некоторые примеры:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([5.], [2.], 'o')
circle=plt.Circle((0, 0), 0.1, color="g",transform=ax.transAxes) #bottom (y=0) left (x=0) green circle of radius 0.1 (expressed in coord system)
ax.add_artist(circle)
ax.annotate('I am the top (y=1.0) right (x=1.0) Figure corner',
xy=(1, 1), xycoords=fig.transFigure,
xytext=(0.2, 0.2), textcoords='offset points',
)
plt.text( # position text relative to data
5., 2., 'I am the (5,2) data point', # x, y, text,
ha='center', va='bottom', # text alignment
transform=ax.transData # coordinate system transformation
)
plt.text( # position text relative to Axes
1.0, 0.0, 'I am the bottom (y=0.0) right (x=1.0) axis corner',
ha='right', va='bottom',
transform=ax.transAxes
)
plt.text( # position text relative to Figure
0.0, 1.0, 'I am the top (y=1.0) left (x=0.0) figure corner',
ha='left', va='top',
transform=fig.transFigure
)
plt.show()
