matplotlib.sankey
#
用于使用 Matplotlib 创建 Sankey 图的模块。
- class matplotlib.sankey.Sankey(ax=None, scale=1.0, unit='', format='%G', gap=0.25, radius=0.1, shoulder=0.03, offset=0.15, head_angle=100, margin=0.4, tolerance=1e-06, **kwargs)[源代码][源代码]#
基类:
object
桑基图。
桑基图是一种特定类型的流程图,其中箭头的宽度按比例显示流量。它们通常用于可视化能量、材料或成本在不同过程之间的转移。Wikipedia (6/1/2011)
创建一个新的 Sankey 实例。
下面列出的可选参数应用于所有子图,以确保一致的对齐和格式。
为了绘制一个复杂的桑基图,通过不带任何关键字参数调用来创建一个
Sankey
实例:sankey = Sankey()
然后添加简单的 Sankey 子图:
sankey.add() # 1 sankey.add() # 2 #... sankey.add() # n
最后,创建完整的图表:
sankey.finish()
或者,简单地将这些调用串联起来:
Sankey().add().add... .add().finish()
- 其他参数:
- ax
Axes
数据应绘制在其上的轴。如果未提供 ax,将创建新的轴。
- 比例浮动
流量缩放因子。 scale 调整路径的宽度以保持适当的布局。相同的缩放比例应用于所有子图。值应选择为使得缩放比例与输入总和的乘积约为1.0(并且缩放比例与输出总和的乘积约为-1.0)。
- 单元str
与流量相关的物理单位。如果 unit 为 None,则没有任何数量被标记。
- 格式str 或 可调用对象
用于标记流量的Python数字格式化字符串或可调用对象,以它们的数量(即一个数字乘以一个单位,其中单位已给出)。如果给定一个格式字符串,标签将为
format % quantity
。如果给定一个可调用对象,它将以quantity
作为参数被调用。- 间隙浮动
路径之间在顶部或底部断开/脱离的空白。
- 半径浮动
垂直路径的内半径。
- 肩部浮动
输出箭头肩部的大小。
- 偏移量浮动
文本偏移(从箭头的凹口或尖端开始)。
- head_angle浮动
箭头头部的角度(以及尾部角度的负值),单位为度。
- 边距浮动
桑基图轮廓与绘图区域边缘之间的最小间距。
- 容差浮动
可接受的最大流量和的幅度。连接流量的和的幅度不能大于 tolerance。
- **kwargs
任何额外的关键字参数都将传递给
add
,这将创建第一个子图。
- ax
示例
- add(patchlabel='', flows=None, orientations=None, labels='', trunklength=1.0, pathlengths=0.25, prior=None, connect=(0, 0), rotation=0, **kwargs)[源代码][源代码]#
添加一个简单的桑基图,其中流动处于同一层次级别。
- 参数:
- patchlabelstr
标签将放置在图表的中心。请注意,label*(不是 *patchlabel)可以作为关键字参数传递,以在图例中创建一个条目。
- 流程浮点数列表
流量值的数组。按照惯例,输入为正,输出为负。
流程按照其在 flows 中的索引顺序,从内到外放置在图表的顶部。它们沿着图表的两侧从上到下放置,沿着底部从外向内放置。
如果输入和输出的总和不为零,差异将显示为沿着主干顶部和底部边缘的三次贝塞尔曲线。
- 方向列表 {-1, 0, 1}
流的方向列表(或用于所有流的单一方向)。有效值为 0(从左输入,向右输出),1(从上输入和输出)或 -1(从下输入和输出)。
- 标签列表(str 或 None)
流的标签列表(或用于所有流的单个标签)。每个标签可以是 None*(无标签),或是一个标签字符串。如果一个条目是一个(可能为空的)字符串,那么相应流的量将显示在该字符串下方。然而,如果主图的 *单位 是 None,那么无论此参数的值如何,数量都不会显示。
- trunklength浮动
输入和输出组基底之间的长度(以数据空间单位表示)。
- 路径长度浮点数列表
断开前或断开后垂直箭头的长度列表。如果给定一个单一值,那么它将应用于顶部和底部的第一个(内部)路径,所有其他箭头的长度将相应调整。pathlengths 不适用于水平输入和输出。
- 先前整数
此图应连接的前一图的索引。
- 连接(整数, 整数)
一个 (prior, this) 元组,索引了前一个图表的流程和当前图表的流程,这些流程应该被连接。如果这是第一个图表或 prior 是 None,connect 将被忽略。
- 旋转浮动
图表的旋转角度,单位为度。orientations 参数的解释将相应地旋转(例如,如果 rotation == 90,orientations 条目为 1 意味着从左到右)。如果此图表连接到现有图表(使用 prior 和 connect),则忽略 rotation。
- 返回:
- 桑基图
当前的
Sankey
实例。
- 其他参数:
- **kwargs
额外的关键字参数设置
matplotlib.patches.PathPatch
属性,如下所列。例如,可以使用fill=False
或label="一个图例条目"
。属性
描述
一个过滤函数,它接受一个 (m, n, 3) 的浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量
未知
布尔
抗锯齿
或 aa布尔值或无
CapStyle
或 {'butt', 'projecting', 'round'}BboxBase
或 None布尔
补丁或(路径,变换)或无
edgecolor
或 eccolor or None
facecolor
或 fccolor or None
布尔
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
布尔
JoinStyle
或 {'miter', 'round', 'bevel'}对象
线型
或 ls{'-', '--', '-.', ':', '', (偏移, 开关序列), ...}
linewidth
或 lw浮点数或无
布尔
None 或 bool 或 float 或 callable
布尔
(scale: float, length: float, randomness: float)
布尔值或无
str
布尔
浮动
- finish()[源代码][源代码]#
调整坐标轴并返回有关 Sankey 子图的信息列表。
返回一个包含以下字段的子图列表:
字段
描述
patch
桑基图轮廓(一个
PathPatch
)。flows
流量值(输入为正,输出为负)。
角度
箭头的角度列表 [度/90]。例如,如果图表未旋转,输入到顶部边的角度为3(向下),从顶部边输出的角度为1(向上)。如果流程被跳过(因为其幅度小于 tolerance),则其角度将为 None。
提示
流路径的尖端(或“凹点”)的 (x, y) 位置的 (N, 2) 数组。如果流的量小于这个
Sankey
实例的 容差 ,则该流将被跳过,其尖端将位于图表的中心。文本
Text
实例用于图表标签。文本
Text
实例的列表,用于流程标签。参见