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()
其他参数:
axAxes

数据应绘制在其上的轴。如果未提供 ax,将创建新的轴。

比例浮动

流量缩放因子。 scale 调整路径的宽度以保持适当的布局。相同的缩放比例应用于所有子图。值应选择为使得缩放比例与输入总和的乘积约为1.0(并且缩放比例与输出总和的乘积约为-1.0)。

单元str

与流量相关的物理单位。如果 unit 为 None,则没有任何数量被标记。

格式str 或 可调用对象

用于标记流量的Python数字格式化字符串或可调用对象,以它们的数量(即一个数字乘以一个单位,其中单位已给出)。如果给定一个格式字符串,标签将为 format % quantity。如果给定一个可调用对象,它将以 quantity 作为参数被调用。

间隙浮动

路径之间在顶部或底部断开/脱离的空白。

半径浮动

垂直路径的内半径。

肩部浮动

输出箭头肩部的大小。

偏移量浮动

文本偏移(从箭头的凹口或尖端开始)。

head_angle浮动

箭头头部的角度(以及尾部角度的负值),单位为度。

边距浮动

桑基图轮廓与绘图区域边缘之间的最小间距。

容差浮动

可接受的最大流量和的幅度。连接流量的和的幅度不能大于 tolerance

**kwargs

任何额外的关键字参数都将传递给 add,这将创建第一个子图。

示例

(Source code)

(2x.png, png)

(2x.png, png)

(2x.png, png)

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) 元组,索引了前一个图表的流程和当前图表的流程,这些流程应该被连接。如果这是第一个图表或 priorNoneconnect 将被忽略。

旋转浮动

图表的旋转角度,单位为度。orientations 参数的解释将相应地旋转(例如,如果 rotation == 90,orientations 条目为 1 意味着从左到右)。如果此图表连接到现有图表(使用 priorconnect),则忽略 rotation

返回:
桑基图

当前的 Sankey 实例。

其他参数:
**kwargs

额外的关键字参数设置 matplotlib.patches.PathPatch 属性,如下所列。例如,可以使用 fill=Falselabel="一个图例条目"

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 的浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量

alpha

未知

animated

布尔

抗锯齿 或 aa

布尔值或无

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

FigureSubFigure

填充

布尔

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

in_layout

布尔

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

标签

对象

线型 或 ls

{'-', '--', '-.', ':', '', (偏移, 开关序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

path_effects

AbstractPathEffect 的列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

可见

布尔

zorder

浮动

参见

Sankey.finish
finish()[源代码][源代码]#

调整坐标轴并返回有关 Sankey 子图的信息列表。

返回一个包含以下字段的子图列表:

字段

描述

patch

桑基图轮廓(一个 PathPatch)。

flows

流量值(输入为正,输出为负)。

角度

箭头的角度列表 [度/90]。例如,如果图表未旋转,输入到顶部边的角度为3(向下),从顶部边输出的角度为1(向上)。如果流程被跳过(因为其幅度小于 tolerance),则其角度将为 None

提示

流路径的尖端(或“凹点”)的 (x, y) 位置的 (N, 2) 数组。如果流的量小于这个 Sankey 实例的 容差 ,则该流将被跳过,其尖端将位于图表的中心。

文本

Text 实例用于图表标签。

文本

Text 实例的列表,用于流程标签。

参见

Sankey.add