Plotly 桑基图
本文将讨论使用 Plotly 中图形对象的 Sankey()
函数创建 Sankey 图。
Plotly 桑基图
桑基图将数据表示为不同节点通过链接连接的流程图。链接的宽度代表节点的值。
我们可以使用 plotly.graph_object
的 Sankey()
函数来创建 Sankey 图。Sankey()
函数有两个主要参数,节点和链接。在 node 参数中,我们可以传递一个标签来定义每个节点的标签。
我们还可以传递节点的颜色、节点的粗细以及每个节点之间的距离。我们可以在链接参数中传递链接信息,如链接源、目标和值。
我们可以使用节点标签的索引来指定源节点和目标节点,其值可以是任意整数。例如,如果我们要连接前两个节点,我们将在源列表中传递 0,在目标列表中传递 1。
例如,让我们制作六个节点的桑基图。请参阅下面的代码。
import plotly.graph_objects as go
fig = go.Figure(data=[go.Sankey(
node = dict(
pad = 50,
thickness = 5,
label = ["A", "B", "C", "D", "E", "F"],
color = "blue"
),
link = dict(
source = [0, 1, 0, 2, 3, 3],
target = [5, 3, 3, 4, 4, 5],
value = [3, 4, 2, 8, 4, 2]
))])
fig.show()
输出:
我们可以将节点的颜色更改为 Plotly 支持的任何颜色。如果我们只在 color
参数中传递一种颜色,所有节点都将具有相同的颜色。
我们可以使用颜色名称列表而不是单个颜色名称为每个节点赋予不同的颜色。我们也可以像改变每个节点的颜色一样改变每个链接的颜色。
我们还可以使用 node
参数中的 line 参数在每个节点周围添加一条线,我们还可以设置线的颜色和宽度。我们可以使用 update_layout
函数的 title_text
参数为图表添加标题,我们还可以使用 font_size
参数设置文本字体。
我们可以使用 valueformat
参数设置通过将鼠标悬停在链接上显示的值格式。我们还可以使用 valuesuffix
参数在每个值之后添加后缀。
我们还可以使用 orientation
参数更改桑基图的方向,并将其值设置为 v 表示垂直方向,h 表示水平方向。
我们还可以使用 update_layout()
函数中的 plot_bgcolor
和 paper_bgcolor
参数更改绘图背景颜色和纸张背景颜色。
我们还可以使用 hovertemplate
参数更改当光标悬停在链接或节点上时要显示的信息。如果我们想在悬停框中显示变量的值,我们可以使用百分号并将变量名称放在大括号内。
让我们更改上面提到的属性。请参阅下面的代码。
import plotly.graph_objects as go
fig = go.Figure(data=[go.Sankey(
valueformat = ".0f",
valuesuffix = " kg",
orientation = "v",
node = dict(
pad = 50,
thickness = 10,
line = dict(color = "red", width = 2),
label = ["A", "B", "C", "D", "E", "F"],
color = ["blue","red","green","yellow","brown"]
),
link = dict(
source = [0, 1, 0, 2, 3, 3],
target = [5, 3, 3, 4, 4, 5],
value = [3, 4, 2, 8, 4, 2],
color = ["blue","red","green","yellow","brown"],
hovertemplate='This link has total value %{value}<extra></extra>'
))])
fig.update_layout(title_text="Sankey Diagram",
font_size=16,
plot_bgcolor='white',
paper_bgcolor='lightblue')
fig.show()
输出:
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。