matplotlib
Системы координат
Поиск…
замечания
Matplotlib имеет четыре различные системы координат, которые могут быть использованы для облегчения позиционирования другого объекта, например текста. Каждая система имеет соответствующий объект преобразования, который преобразует координаты из этой системы в так называемую систему координат дисплея.
Система координат данных - это система, определяемая данными о соответствующих осях. Это полезно при попытке позиционировать некоторый объект относительно данных, нанесенных на график. Диапазон задается свойствами xlim
и ylim
Axes
. Его соответствующим объектом преобразования является ax.transData
.
Система координат осей - это система, привязанная к объекту Axes
. Точки (0, 0) и (1, 1) определяют нижние левые и верхние правые углы осей. По существу, это полезно при позиционировании относительно осей, например, в верхней части графика. Соответствующим объектом преобразования является ax.transAxes
.
Система координат рисунка аналогична системе координат осей, за исключением того, что она привязана к Figure
. Точки (0, 0) и (1, 1) представляют нижние и верхние правые углы фигуры. Это полезно при попытке позиционировать что-то относительно всего изображения. Соответствующим объектом преобразования является fig.transFigure
.
Отображение системы координат - это система изображения, заданного в пикселях. Точки (0, 0) и (ширина, высота) - это нижние и верхние правые пиксели изображения или дисплея. Его можно использовать для позиционирования абсолютно. Поскольку объекты преобразования преобразуют координаты в эту систему координат, система отображения не имеет связанного с ней объекта преобразования. Однако при необходимости можно использовать None
или matplotlib.transforms.IdentityTransform()
.
Более подробная информация доступна здесь .
Системы координат и текст
Системы координат Matplotlib очень удобны, когда вы пытаетесь комментировать детали, которые вы делаете. Иногда вы хотели бы разместить текст относительно ваших данных, например, при попытке маркировать определенную точку. Иногда вам, возможно, хотелось бы добавить текст поверх фигуры. Этого можно легко добиться, выбрав соответствующую систему координат, передав объект transform
параметр transform
в вызове text()
.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([2.], [3.], 'bo')
plt.text( # position text relative to data
2., 3., 'important 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, 1.0, 'axes corner',
ha='right', va='top',
transform=ax.transAxes
)
plt.text( # position text relative to Figure
0.0, 1.0, 'figure corner',
ha='left', va='top',
transform=fig.transFigure
)
plt.text( # position text absolutely at specific pixel on image
200, 300, 'pixel (200, 300)',
ha='center', va='center',
transform=None
)
plt.show()