zoukankan      html  css  js  c++  java
  • python画桑基图

    桑基图

    import pandas as pd
    df = pd.DataFrame({
        '性别':['','','', '', '', ''],
        '熬夜原因':['打游戏', '加班', '看剧', '打游戏','加班', '看动漫'],
        '人数':[57,59,30,12,65,37]
    })
    nodes = []
    
    for i in range(2):
        values = df.iloc[:,i].unique() # pandas.core.series.Series
    #     v2 = df.iloc[:5,:] # pandas.core.frame.DataFrame
        for value in values:
            dic = {}
            dic['name'] = value
            nodes.append(dic)
    
    links = []
    
    for i in df.values:
        dic = {}
        dic['source'] = i[0]
        dic['target'] = i[1]
        dic['value'] = i[2]
        links.append(dic)
    
    from pyecharts.charts import Sankey
    from pyecharts import options as opts
    
    pic = (
        Sankey(init_opts=opts.InitOpts(js_host="https://cdn.bootcss.com/echarts/4.4.0-rc.1/"))
        .add('', #图例名称
             nodes, #传入节点数据
             links, #传入边和流量数据
             linestyle_opt = opts.LineStyleOpts(opacity = 0.3, curve = 0.5, color = 'source'),
             # 标签显示位置
             label_opts = opts.LabelOpts(position = 'right'),
             # 节点之前的距离
             node_gap = 30,
            )
        .set_global_opts(title_opts = opts.TitleOpts(title = '熬夜原因桑基图'))
    )
    
    if __name__ == '__main__':
        pic.render("index.html")

    效果如下图所示:

  • 相关阅读:
    JVM Ecosystem Report 2020
    TiDB 简介
    Docker镜像分层打包方案
    Promethues + Grafana + AlertManager使用总结
    Spring Boot自动注入原理
    Spring Boot 2.x 自定义Endpoint
    Oracle 等待事件 Enq: CF
    1000行MySQL学习笔记
    PostgreSQL DBA常用SQL查询语句
    MongoDB DBA常用的NoSQL语句
  • 原文地址:https://www.cnblogs.com/z-712/p/14185780.html
Copyright © 2011-2022 走看看