转换管道
发布日期:2021-06-29 14:46:27 浏览次数:3 分类:技术文章

本文共 1686 字,大约阅读时间需要 5 分钟。

The transformation pipeline

转换管道

目录:    1.          2.         3.       4.

ax.transData改变我们一直与本教程是包含从管路改造三种不同变换的复合data- >display 坐标。Michael Droettboom实现了转换框架,注意提供一个干净的API,隔离极坐标和对数图中发生的非线性投影和比例,从平移和缩放时发生的线性仿射变换。这里有一个效率,因为您可以平移和放大影响仿射变换的轴,但您可能不需要计算简单导航事件中可能昂贵的非线性尺度或投影。也可以将仿射变换矩阵相乘,然后在一个步骤中将它们应用于坐标。所有可能的转换都不是这样。

以下是ax.transData在基本可分轴类中定义实例的方法

:

self.transData = self.transScale + (self.transLimits + self.transAxes)

我们已经transAxes在介绍了上面的实例 ,它将轴或子图边界框的(0,0),(1,1)角映射到display空间,所以让我们看看其他两个部分。

self.transLimits是将你data带到axes坐标的转变 ; 即,它将您的视图xlim和ylim映射到轴的单位空间(transAxes然后将该单位空间显示为空间)。我们可以在这里看到这一点

In [80]: ax = subplot(111)In [81]: ax.set_xlim(0, 10)Out[81]: (0, 10)In [82]: ax.set_ylim(-1,1)Out[82]: (-1, 1)In [84]: ax.transLimits.transform((0,-1))Out[84]: array([ 0.,  0.])In [85]: ax.transLimits.transform((10,-1))Out[85]: array([ 1.,  0.])In [86]: ax.transLimits.transform((10,1))Out[86]: array([ 1.,  1.])In [87]: ax.transLimits.transform((5,0))Out[87]: array([ 0.5,  0.5])

我们可以使用相同的倒置变换从单位 axes坐标回到data坐标.

In [90]: inv.transform((0.25, 0.25))Out[90]: array([ 2.5, -0.5])

最后一块是self.transScale属性,它负责数据的可选非线性缩放,例如,用于对数轴。当最初设置Axes时,这只是设置为身份变换,

因为基本matplotlib轴具有线性比例,但是当您调用对数缩放函数 或者将比例显式设置为对数时,则该 ax.transScale属性设置为处理非线性投影。比例变换是各自xaxis和 yaxis 实例的属性。例如,当您调用时ax.set_xscale('log'),xaxis会将其比例更新为 实例。

对于不可分离的轴PolarAxes,还有一个要考虑的因素是投影变换。在transData类似于对典型可分离matplotlib轴,具有一个附加的片transProjection

:

self.transData = self.transScale + self.transProjection + \    (self.transProjectionAffine + self.transAxes)

transProjection处理从空间的投影,例如,地图数据的纬度和经度,或极坐标数据的半径和θ,到可分离的笛卡尔坐标系。包中有几个投影示例,matplotlib.projections了解更多内容的最佳方法是打开这些包的源代码并查看如何创建自己的包,因为matplotlib支持可扩展的轴和投影。Michael Droettboom提供了一个很好的教程示例,用于创建锤子投影轴; 请参阅 

转载地址:https://chunyou.blog.csdn.net/article/details/83660171 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:pandas统计学-相关性系数(pearson、spearman、kendall,pointbiserialr )tcy
下一篇:偏移变换

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月18日 16时13分54秒