Matplotlib 转换

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

坐标转换对象描述
Dataax.transData用户陆地数据坐标系,由xlim和ylim控制
Axesax.transAxes轴的坐标系。(0,0)在左下方,(1,1)在轴的右上方。
Figurefig.transFigure图的坐标系。(0,0)在左下方,(1,1)在图的右上方
displayNone这是显示器的像素坐标系。(0,0)是左下角,(宽度,高度)是显示的右上角(以像素为单位)。或者可以使用(matplotlib.transforms.IdentityTransform())代替None。

考虑以下示例 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.cainiaojc.com
# Date : 2020-08-08
axes.text(x,y,"my label")

文本位于数据点(x,y)的理论位置。也称为“数据坐标”。使用其他转换对象,可以控制放置。例如,如果要将上述测试放在轴坐标系的中心,请执行以下代码行 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.cainiaojc.com
# Date : 2020-08-08
axes.text(0.5, 0.5, "middle of graph", transform=axes.transAxes)

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

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