由于工作的需要,經(jīng)常需要進行可視化展示,除了一些常用的BI工具,我也會使用python對數(shù)據(jù)進行可視化。
python的第三方可視化庫有很多,比如matplotlib、seaborn、plotly、bokeh、pyecharts等等。
這次就來說一說,如何用python的第三方庫-pyecharts制作交互式?;鶊D。
示例
?;鶊D(Sankey diagram),即桑基能量分流圖,也叫桑基能量平衡圖。它是一種特定類型的流程圖,圖中延伸的分支的寬度對應(yīng)數(shù)據(jù)流量的大小,比較適用于用戶流量等數(shù)據(jù)的可視化分析。因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機的能源效率圖”而聞名,此后便以其名字命名為“?;鶊D”。
可交互
pip install pyecharts
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 會生成本地 HTML 文件,默認會在當前目錄生成 render.html 文件
# 也可以傳入路徑參數(shù),如 bar.render("mycharts.html")
bar.render()
END# 導入相關(guān)庫
import pandas as pd
from pyecharts.charts import Page, Sankey
from pyecharts import options as opts
# 讀取csv文件
data = pd.read_csv(r'sample.csv',encoding='gbk',header=None)
# 生成nodes
nodes = []
nodes.append({'name':'總支出'})
for i in data[0].unique():
dic = {}
dic['name'] = i
nodes.append(dic)
# 生成links
links = []
for i in data.values:
dic = {}
dic['source'] = i[0]
dic['target'] = i[1]
dic['value'] = i[2]
links.append(dic)
# pyecharts 所有方法均支持鏈式調(diào)用。
c = (
Sankey()
.add(
"費用/元",
nodes,
links,
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source",type_="dotted"),
label_opts=opts.LabelOpts(position="right",),
)
.set_global_opts(title_opts=opts.TitleOpts(title="我的生活支出一覽"))
)
# 輸出html可視化結(jié)果
c.render('result.html')
聯(lián)系客服