一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python數據可視化Pyecharts庫實現桑葚圖效果

Python數據可視化Pyecharts庫實現桑葚圖效果

2022-01-17 10:11麥片加奶不加糖 Python

這篇文章主要介紹了Python數據可視化如何使用Pyecharts庫來實現桑葚圖效果圖,文中給出實現的示例代碼,有需要的朋友可以借鑒參考想,希望能夠有所幫助

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

桑基圖(Sankey diagram),即桑基能量分流圖,也叫桑基能量平衡圖。

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

因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機的能源效率圖”而聞名,此后便以其名字命名為“桑基圖”。

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

Python數據可視化Pyecharts庫實現桑葚圖效果

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

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

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

首先使用熟悉的pip進行安裝

pip install pyecharts

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

Python數據可視化Pyecharts庫實現桑葚圖效果

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

 

基本思路我總結大概有三步:

1. 先申明使用sankey

sankey = Sankey("桑基圖示例", 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是必須參數,相當于桑葚圖中的結點和連接的邊。需要傳入一個List數據,內嵌字典數據格式,如下所示。這里的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')

Python數據可視化Pyecharts庫實現桑葚圖效果

參考資料:

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

以上就是Python數據可視化Pyecharts庫實現桑葚圖效果的詳細內容,更多關于Pyecharts庫實現桑葚圖的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/sinat_23133783/article/details/112979067

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 百合漫画咱啪全彩抚慰 | 精彩国产萝视频在线 | 日本中文字幕一区二区三区不卡 | 国产精品第3页 | 欧美专区在线播放 | 亚洲国产剧情中文视频在线 | 久久国产精品人妻中文 | 亚洲男人天堂2023 | 俺去啦最新地址 | 国产亚洲精品美女 | 无人在线视频高清免费播放 | 四虎影视在线永久免费观看 | 国产精品久久久99 | 日本一区二区不卡久久入口 | 黑人日白人 | s0e一923春菜花在线播放 | 乳女教师欲乱动漫无修版动画3d | 含羞草传媒网站免费进入欢迎 | 4hc44四虎永久地址链接 | 国产日韩欧美 | bbbbbbaaaaaa毛片| 欧美无专区 | 婷婷色在线观看 | 久久国产加勒比精品无码 | 男人扒开女人下身添 | 好猛好紧好硬使劲好大刺激视频 | 国产无套在线播放 | 半挠脚心半黄的网站 | 欧美成人二区 | 九九大香尹人视频免费 | 99久久999久久久综合精品涩 | xxxxx性13一14 | 精品国产成人 | 国产成年人网站 | 亚洲精品福利在线 | 草莓秋葵菠萝蜜绿巨人污 | jazz中国在线视频 | 国产成人黄网在线免 | 日韩精品一二三区 | 色天天色综合 | 15同性同志18|