流程图(三)利用python绘制桑基图

news/2025/1/8 2:59:01/

python_0">流程图(三)利用python绘制桑基图

桑基图(Sankey diagram)简介

1

桑基图经常用于能源、金融行业,对材料、成本的流动进行可视化分析。现在很多互联网行业还使用桑基图做用户流动性分析,能很好地观察数据成分的变动大小及变动方向。

快速绘制

  1. 基于plotly

    python">import plotly.graph_objects as go
    import urllib, json# 导入数据
    url = 'https://raw.githubusercontent.com/plotly/plotly.js/master/test/image/mocks/sankey_energy.json'
    response = urllib.request.urlopen(url)
    data = json.loads(response.read())# 将所有的"magenta"颜色更改为rgba(255,0,255, 0.8),并将所有连接颜色更改为其对应的'source'节点颜色且透明度是0.4
    opacity = 0.4
    data['data'][0]['node']['color'] = ['rgba(255,0,255, 0.8)' if color == "magenta" else color for color in data['data'][0]['node']['color']]
    data['data'][0]['link']['color'] = [data['data'][0]['node']['color'][src].replace("0.8", str(opacity))for src in data['data'][0]['link']['source']]fig = go.Figure(data=[go.Sankey(valueformat = ".0f",valuesuffix = "TWh",# 定义节点node = dict(pad = 15,thickness = 15,line = dict(color = "black", width = 0.5),label =  data['data'][0]['node']['label'],color =  data['data'][0]['node']['color']),# 添加连接link = dict(source =  data['data'][0]['link']['source'],target =  data['data'][0]['link']['target'],value =  data['data'][0]['link']['value'],label =  data['data'][0]['link']['label'],color =  data['data'][0]['link']['color']
    ))])fig.update_layout(title_text="Energy forecast for 2050<br>Source: Department of Energy & Climate Change, Tom Counsell via <a href='https://bost.ocks.org/mike/sankey/'>Mike Bostock</a>",font_size=10)
    

    2

  2. 基于pyecharts

    python">import pyecharts.options as opts
    from pyecharts.charts import Sankey
    import urllib, json# 导入数据
    url = 'https://echarts.apache.org/examples/data/asset/data/energy.json'
    response = urllib.request.urlopen(url)
    data = json.loads(response.read())c = (Sankey().add(series_name="",nodes=data["nodes"],links=data["links"],itemstyle_opts=opts.ItemStyleOpts(border_width=1, border_color="#aaa"),linestyle_opt=opts.LineStyleOpts(color="source", curve=0.5, opacity=0.5),tooltip_opts=opts.TooltipOpts(trigger_on="mousemove"),).set_global_opts(title_opts=opts.TitleOpts(title=""))
    )c.render_notebook()
    

    3

  3. 基于pysankey

    python">import pandas as pd
    from pySankey.sankey import sankey# 基于source和target,数据可重复出现,出现次数越多,权重越大(即线越粗)
    url = "https://raw.githubusercontent.com/anazalea/pySankey/master/pysankey/fruits.txt"
    df = pd.read_csv(url, sep=" ", names=["true", "predicted"])colors = {"apple": "#f71b1b","blueberry": "#1b7ef7","banana": "#f3f71b","lime": "#12e23f","orange": "#f78c1b"
    }sankey(df["true"], df["predicted"], aspect=20, colorDict=colors, fontsize=12)
    

    4

    python">import pandas as pd
    from pySankey.sankey import sankey# 基于source和、target和value,数据可仅出现一次,value即权重
    url = "https://raw.githubusercontent.com/anazalea/pySankey/master/pysankey/customers-goods.csv"
    df = pd.read_csv(url, sep=",")sankey(left=df["customer"], right=df["good"], leftWeight= df["revenue"], rightWeight=df["revenue"], aspect=20, fontsize=20
    )
    

    5

    总结

    以上通过plotly、pyecharts和pysankey快速绘桑基图。

    共勉~


http://www.ppmy.cn/news/1561153.html

相关文章

在不到 5 分钟的时间内将威胁情报 PDF 添加为 AI 助手的自定义知识

作者&#xff1a;来自 Elastic jamesspi 安全运营团队通常会维护威胁情报报告的存储库&#xff0c;这些报告包含由报告提供商生成的大量知识。然而&#xff0c;挑战在于&#xff0c;这些报告的内容通常以 PDF 格式存在&#xff0c;使得在处理安全事件或调查时难以检索和引用相关…

F.interpolate函数

F.interpolate 是 PyTorch 中用于对张量&#xff08;通常是图像数据&#xff09;进行插值操作的函数&#xff0c;常用于调整张量的大小&#xff0c;例如改变图像的分辨率。它支持多种插值方法&#xff0c;包括最近邻插值、双线性插值和三次插值等。 语法 torch.nn.functional…

【杂谈】-DeepSeek如何以560万美元突破成本障碍

DeepSeek如何以560万美元突破成本障碍 文章目录 DeepSeek如何以560万美元突破成本障碍1、高效人工智能的经济学2、实现不可能的工程3、人工智能生态系统的连锁反应 传统的人工智能观点认为&#xff0c;构建大型语言模型 (LLM)需要大量资金——通常需要数十亿美元的投资。但中国…

Eclipse 内容辅助

Eclipse的内容辅助&#xff08;Content Assist&#xff09;功能是一项核心特性&#xff0c;它通过提供代码提示和自动完成建议来提高开发效率。这个功能能够在用户编写代码时自动显示可能的代码补全选项&#xff0c;如变量名、方法名、类名和关键字等。它还能根据用户的输入和上…

「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计

智慧文旅运营综合平台&#xff0c;旨在通过集成大数据、云计算、物联网、人工智能等先进技术&#xff0c;为景区、旅游企业及相关管理机构提供一站式的智慧化运营服务。 智慧文旅运营综合平台不仅能够提升游客的游览体验&#xff0c;还能帮助景区管理者实现资源的优化配置和业务…

Unity的四种数据持久化方式

目录 什么是数据持久化 数据持久化之PlayerPrefs 概述 API及用法 电脑中存放的位置 优缺点 主要用处 封装PlayerPrefs 数据持久化之XML XML是什么 读取XML信息 C#读取XML的方法有几种 读取xml文件信息 读取元素和属性信息 总结 写入XML信息 选择存储目录 存储…

从RNN循环神经网络到长短时记忆网络LSTM

前言 本文从一个简单的例子出发,介绍了RNN及其两种变体LSTM和GRU的基本原理,了解循环神经网络能够解决什么问题,以及能够应用在哪些领域。 1&#xff09;本文重点&#xff1a;本文重点研究RNN及其变体的原理和解决的问题; 2&#xff09;本文缺陷&#xff1a;本文为有倾向性的知…

《ChatGPT 数据分析实践》——人人都是数据分析高手!

文章目录 零、前言一、深入探索 ChatGPT 的潜力二、书中亮点概览从零开始应用案例丰富全面覆盖数据分析流程跨行业适用 三、学习 ChatGPT 数据分析的价值四、读者对象五、作者介绍六、感受七、粉丝福利福利0福利1福利2 零、前言 我是虚竹哥&#xff0c;目标是带十万人玩转Chat…