迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Plotly 桑基图

作者:迹忆客 最近更新:2023/03/21 浏览次数:

本文将讨论使用 Plotly 中图形对象的 Sankey() 函数创建 Sankey 图。

Plotly 桑基图

桑基图将数据表示为不同节点通过链接连接的流程图。链接的宽度代表节点的值。

我们可以使用 plotly.graph_objectSankey() 函数来创建 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_bgcolorpaper_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()

输出:

改变桑基图的属性

上一篇:Plotly 热图

下一篇:Plotly 树状图

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

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 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便