matplotlib AffineBase, Affine2DBase, Affine2D
2020-04-10 09:02:59 --Edit by yangray
仿射变换矩阵参考资料-->https://blog.csdn.net/robert_chen1988/article/details/80498805
AffineBase 继承自Transform,是所有仿射变换(任意维度)的基类。
Affine2DBase 继承自AffineBase,是所有2维仿射变换的基类,该类仅提供只读的属性,该类的子类需要重写构造函数和get_matrix()方法,是形如[[a, c, e], [b, d, f], [0, 0, 1]]的矩阵。
Affine2D 继承自Affine2DBase,是属性可被改写的二维仿射变换。
AffineBase(Transform):
方法:
__init__(self, *args, **kwargs):
初始化本变换,参数同父类。
__array__(self, *args, **kwargs):
返回仿射矩阵。
_concat(a, b): 静态方法
参数 [a], [b]:仿射矩阵
返回矩阵a和b的点积。
transform(self, values):
参数[values]: 变换的目标,形式为n维数组
返回values执行本变换后的结果。(因为是仿射变换的基类,所以实际上只执行仿射变换)
transform_affine(self, values), transform_non_affine(self, points):
参数同上
返回values执行 仿射部分/非仿射部分 的结果。(实际上非仿射变换不会执行)
transform_path(self, path):
参数[path]: Path实例,意为路径、曲线
返回path执行本变换后的结果。
transform_path_affine(self, path), transform_path_non_affine(self, path):
参数同上
返回path执行 仿射部分/非仿射部分 后的结果。(非仿射部分不会被执行)
get_affine(self):
返回self(常用于链式调用)。
Affine2DBase(Affine2D):
方法:
- frozen(self):
返回静态的仿射矩阵的拷贝。(3*3)
_get_is_separable(self):
返回本变换是否为可分离的, 可分离为True。(指x方向和y方向)
to_values(self):
返回本变换中仿射参数的一维元组形式。(a,b,c,d,e,f)
matrix_from_values(a, b, c, d, e, f): 静态方法
以参数a, b, c, d, e, f初始化一个二维仿射矩阵并返回。(第三行为[0, 0, 1])
transform_affine(self, points):
返回点集[points]执行本变换中仿射部分的结果。
transform_point(self, point):
返回点(point)执行本变换中仿射部分的结果。
inverted(self):
返回本仿射矩阵的逆矩阵。
Affine2D(Affine2DBase):
方法:
__init__(self, matrix=None, **kwargs):
参数[matrix]: 3*3 numpy 数组(浮点数)
初始化本变换,若matrix=None,则将本变换初始化为一个单位矩阵(3*3)。
from_values(a, b, c, d, e, f): 静态方法
返回[[a,c,e], [b,d,f], [0,1,1]]形式的变换矩阵。
get_matrix(self):
返回本变换矩阵。
set_matrix(self, mtx):
参数[mtx]: 3*3 numpy浮点数矩阵
将mtx设为本变换矩阵。
set(self, other):
参数[other]: Affine2DBase实例
将other的变换矩阵设为本变换矩阵。
identity(): 静态方法
返回单位仿射矩阵。(仅对角线为1,其余为0的3*3矩阵)
clear(self):
以单位仿射矩阵替换掉本仿射矩阵,是为清除本变换。
返回self。
rotate(self, theta), rotate_deg(self, degrees):
参数[theta]: 弧度制角度
[degrees]: 角度制角度
逆时针旋转 弧度theta / 角度degrees。(左下角不动)
rotate_around(self, x, y, theta), rotate_deg_around(self, x, y, degrees):
参数:[x], [y]: 点的坐标参数
逆时针绕点(x, y)旋转 弧度theta / 角度degrees。
translate(self, tx, ty):
参数[tx], [ty]: x,y方向上的平移量
将tx,ty设为仿射矩阵中的参数e,f(平移参数)。
scale(self, sx, sy=None):
参数[sx],[sy]: x,y方向上的平移量
将sx,sy设为仿射矩阵中的参数a, c(伸缩参数)。
skew(self, xShear, yShear),skew_deg(self, xShear, yShear): skew:倾斜
参数[xShear], [yShear]: x,y方向上倾斜的角度(skew()中为弧度制, skew_deg()中为角度制)
将tan(xShear),tan(yShear)设为仿射矩阵中的参数b,d(倾斜参数)。
matplotlib AffineBase, Affine2DBase, Affine2D的更多相关文章
- 数据可视化基础专题(十二):Matplotlib 基础(四)常用图表(二)气泡图、堆叠图、雷达图、饼图、
1 气泡图 气泡图和上面的散点图非常类似,只是点的大小不一样,而且是通过参数 s 来进行控制的,多的不说,还是看个示例: 例子一: import matplotlib.pyplot as plt im ...
- 关于k Line Chart (k线图)
K Line Chart python实现k线图的代码,之前找过matplotlib中文文档但是画k线图的finance方法已经弃用了.所以自己在网上搜寻一下加上改编,很好的实现出k线图, 代码如下: ...
- matplotlib 中其他基于Affine2DBase的类
2020-04-11 11:42:22 --Edit by yangray以下所有类(除了BboxTransformToMaxOnly )都直接继承于Affine2DBaseIdentityTrans ...
- Python自学笔记——Matplotlib风羽自定义
[前言]对于气象专业的小学生来说,风场是预报重要的参考数据,我们所知的风羽有四种:短线代表风速2m/s,长线代表风速4m/s,空心三角代表风速20m/s,实心三角代表风速50m/s.而matplotl ...
- Matplotlib风羽自定义
[前言]对于气象专业的小学生来说,风场是预报重要的参考数据,我们所知的风羽有四种:短线代表风速2m/s,长线代表风速4m/s,空心三角代表风速20m/s,实心三角代表风速50m/s.而matplotl ...
- matplotlib BlendedGenericTransform(混合变换)和CompositeGenericTransform(复合变换)
2020-04-10 23:31:13 -- Edit by yangrayBlendedGenericTransform是Transform的子类,支持在x / y方向上使用不同的变换.(博主翻译为 ...
- matplotlib Transform
2020-04-09 15:09:02 -- Edit by yangray Transform 类是TransformNode的子类,它是所有执行变换的TransformNode的实例的基类.所有非 ...
- python安装numpy、scipy和matplotlib等whl包的方法
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
- matplotlib 高级用法实例--共享x轴
http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...
随机推荐
- 如何在vue中修改动态标签中的样式和修改组件库样式
vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改 ...
- 详解如何快速使用数据可视化BI软件创建医疗运营监控数据中心大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以医疗运营监控数据中心大屏 ...
- 移动端Rem适配(基于vue-cli3 ,ui框架用的是vant-ui)
介绍postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 remlib-flexible 用于设置 rem 基准值 1.安装lib-flexible(用于设置 rem 基准值 ...
- 一道值得思考的fork()面试题
程序如下,判断输出多少个'_' ./a.out int main(){ ; i < ; ++i){ fork(); printf("_"); } } 熟悉fork的话,这里很 ...
- 使用SlimYOLOv3框架实现实时目标检测
介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我们能让 ...
- Github标星3K+,热榜第三,一网打尽数据科学速查表
这几天,Github上的趋势榜一天一换. 这次一个名为 Data-Science--Cheat-Sheet 的项目突然蹿到了第三名. 仔细一看,确实干货满满.来,让文摘菌推荐一下~ 这个项目本质上是备 ...
- 大O 表示法
大O表示法 指出了算法有多快.例如,假设列表包含n个元素.简单查找需要检查每个元素,因此需要执行n次操作.使用大O表示法,这个运行时间为O(n).单位秒呢?没有——大O表示法指的并非以秒为单位的速度. ...
- C# 基础知识系列-7 Linq详解
前言 在上一篇中简单介绍了Linq的入门级用法,这一篇尝试讲解一些更加深入的使用方法,与前一篇的结构不一样的地方是,这一篇我会先介绍Linq里的支持方法,然后以实际需求为引导,分别以方法链的形式和类S ...
- canvas 实现手机图案解锁
参考☞: https://www.cnblogs.com/chenyingying0/ 先上效果图: 我是在 vue 里面实现js 文件 ,所以如果需要在vue 里面使用 可以将以下内容import ...
- AI学习笔记:特征工程
一.概述 Andrew Ng:Coming up with features is difficult, time-consuming, requires expert knowledge. &quo ...