人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python數(shù)據(jù)可視化Pyecharts庫實現(xiàn)桑葚圖效果

發(fā)布日期:2021-12-29 19:40 | 文章來源:gibhub

首先介紹一下什么是桑葚圖?

?;鶊D(Sankey diagram),即?;芰糠至鲌D,也叫桑基能量平衡圖。

它是一種特定類型的流程圖,圖中延伸的分支的寬度對應(yīng)數(shù)據(jù)流量的大小,通常應(yīng)用于能源、材料成分、金融等數(shù)據(jù)的可視化分析。

因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機(jī)的能源效率圖”而聞名,此后便以其名字命名為“?;鶊D”。

抓住桑葚圖的核心定義,是主要用語表現(xiàn)一個數(shù)據(jù)流的過程。其實,我們熟悉的Matplotlib中也可以畫出桑葚圖,可是看起來是不是有那么一點點丑?如下所示:

本篇使用另外一個常用的可視化庫pyecharts來畫圖。

這里需要強(qiáng)調(diào)一下,pyecharts 分為v0.5.x 和 v1 兩個大版本,并且兩個版本是不兼容的。v 0.5.x 支持python2.7 和 3.4+ ,而v1 開始僅支持python 3.6+ ,在官方也分為兩個不同的文檔。

在網(wǎng)上對于v1 的資料和學(xué)習(xí)例子也非常多,本文就為還在使用v 0.5.x版本的同學(xué),提供幫助。本篇之后的例子,使用v 0.5.x版本。官方文檔

首先使用熟悉的pip進(jìn)行安裝

pip install pyecharts

然后我們可以對照著官方文檔中的API介紹來學(xué)習(xí),需要引入 Sankey。

核心參數(shù)不同,主要是對桑葚圖的一些展示的配置。

基本思路我總結(jié)大概有三步:

1. 先申明使用sankey

sankey = Sankey("?;鶊D示例", width=1200, height=600)

2. 使用add 添加對sankey圖的配置信息

sankey.add(
 "sankey",
 nodes=j["nodes"],
 links=j["links"],
 line_opacity=0.2,
 line_curve=0.5,
 line_color="source",
 is_label_show=True,
 label_pos="right",
)

這里需要注意,nodes和links是必須參數(shù),相當(dāng)于桑葚圖中的結(jié)點和連接的邊。需要傳入一個List數(shù)據(jù),內(nèi)嵌字典數(shù)據(jù)格式,如下所示。這里的name、source、target和value都是固定的。

nodes = [
 {'name': 'category1'}, {'name': 'category2'}, {'name': 'category3'},
 {'name': 'category4'}, {'name': 'category5'}, {'name': 'category6'},
]
 
links = [
 {'source': 'category1', 'target': 'category2', 'value': 10},
 {'source': 'category2', 'target': 'category3', 'value': 15},
 {'source': 'category3', 'target': 'category4', 'value': 20},
 {'source': 'category5', 'target': 'category6', 'value': 25}
]

3. 最后render生成html文件展示

sankey.render()

最后給大家分享一個小例子:

def sankey_analysis():
 nodes = [{'name':'Cluster 1'}, {'name':'Cluster 2'},{'name':'Cluster 3'},  
{'name':'Young'},{'name':'Medium'},{'name':'Elder'}]
  
 result = np.array([
 [130,151,188],
 [735,462,670],
 [711,625,881]])
 
 targets = ['Young', 'Medium', 'Elder'] 
 links = []
 
 for i in range(0,3):
  for j in range(0,3):
sub_dict ={}
sub_dict['source'] = 'Cluster '+str(i+1)
sub_dict['target'] = targets[j]
sub_dict['value'] = result[i,j]
links.append(sub_dict)

 pic = (Sankey(name, width=1200, height=600).add('', nodes, links,
 sankey_node_width=80,
 sankey_node_gap=5, 
 line_opacity=0.7,
 line_curve=0.5,
 line_color='source',
 is_label_show=True,
 is_random = True,
 label_text_size=14, 
 label_pos="inside")) 
 pic.render('sankey.html')

參考資料:

1.https://05x-docs.pyecharts.org/#/zh-cn/prepare

以上就是Python數(shù)據(jù)可視化Pyecharts庫實現(xiàn)桑葚圖效果的詳細(xì)內(nèi)容,更多關(guān)于Pyecharts庫實現(xiàn)桑葚圖的資料請關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部