Matplotlib - 变换

matplotlib 包构建在一个转换框架之上,可以轻松地在坐标系之间移动。 可以使用四个坐标系统。 这些系统在下表中进行了简要描述 −

坐标 转换对象 说明
Data ax.transData

用户陆地数据坐标系统。 由 xlim 和 ylim 控制

Axes ax.transAxes

axes 坐标轴的坐标系。 (0,0) 是左下角,(1,1) 是坐标轴的右上角。

Figure fig.transFigure

图形的坐标系。 (0,0) 是左下角,(1,1) 是右上角

display None

这是显示器的像素坐标系。 (0,0) 是左下角,(width, height) 是显示的右上角(以像素为单位)。

或者,可以使用 (matplotlib.transforms.IdentityTransform()) 代替 None。

考虑以下示例 −

axes.text(x,y,"my label") 

文本放置在数据点 (x,y) 的理论位置。 因此我们会谈到"数据坐标"。

使用其他转换对象,可以控制位置。 例如上面的测试要放在axes坐标系的中心,执行下面这行代码 −

axes.text(0.5, 0.5, "middle of graph", transform=axes.transAxes)

这些转换可用于任何类型的 Matplotlib 对象。 ax.text 的默认转换是 ax.transDatafig.text 的默认转换是 fig.transFigure

在坐标轴中放置文本时,坐标轴坐标系非常有用。 您可能经常需要在固定位置放置文本气泡; 例如,在坐标区窗格的左上角,并在平移或缩放时使该位置保持固定。