pyecharts简单实现桑吉图

桑吉图的简单实现

主要用到的工具函数

import pandas as pd 
from pyecharts.charts import Sankey
import pyecharts.options as opts
dt = pd.read_excel("C:/Users/ganyu/Desktop/ceshi.xlsx")

数据的样子
在这里插入图片描述
一共要将原始数据处理成两份桑吉图专用的数据。
一份是所有的节点数据,另一份是所有的连接的线数据

nodes = []
d1 = pd.concat([dt["source"],dt["target"]],ignore_index=True,axis=0)
d1 = pd.DataFrame(d1)
d1.drop_duplicates(inplace=True)
for name in d1.values:
    dic = {}
    dic["name"] = name[0]
    nodes.append(dic)
lines = []
for line in dt.values:
    dic = {}
    dic["source"] = line[1]
    dic["target"] = line[0]
    dic["value"] = line[2]
    lines.append(dic)
#增加个汇总的节点
nodes.append({"name":"total"})
lines.append({"source":"我你","target":"total","value":1200})

数据的处理结果:
节点nodes(要去重)
在这里插入图片描述
联接links:从左到右顺序,source指向target
在这里插入图片描述
制作桑吉图

c =(Sankey()
    .add("sankey",
        nodes=nodes,
        links=lines,
        linestyle_opt=opts.LineStyleOpts(opacity=0.5,width=1,curve=0.6,color="source"),
        label_opts=opts.LabelOpts(position="left"),
        )
     .set_global_opts(title_opts=opts.TitleOpts(title="桑吉图示例"))
     #.render("sankey_base2.html")
    )
c.render_notebook()#在notebook上显示

在这里插入图片描述
图形个性化设置http://pyecharts.org/#/zh-cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值