Matplotlib 变换


matplotlib 包建立在转换框架之上,可以轻松地在坐标系之间移动,可以使用四个坐标系。系统简述如下表:

协调转换对象描述
Dataax.transData

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

Axesax.transAxes

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

Figurefig.transFigure

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

displayNone

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

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

考虑下面的例子:

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

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

使用其他变换对象,可以控制放置。例如,如果上面的测试是要放在轴坐标系的中心,执行下面这行代码:

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

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

当在你的坐标轴中放置文本时,坐标轴系统是非常有用的。

你可能经常希望在一个固定的位置上有一个文本气泡;例如,在轴窗格的左上方,当你平移或缩放时,这个位置保持固定。