您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何實現Python數據可視化Pyecharts庫實現桑葚圖效果”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現Python數據可視化Pyecharts庫實現桑葚圖效果”吧!
基本思路我總結大概有三步:
1. 先申明使用sankey
2. 使用add 添加對sankey圖的配置信息
3. 最后render生成html文件展示
首先介紹一下什么是桑葚圖?
桑基圖(Sankey diagram),即桑基能量分流圖,也叫桑基能量平衡圖。
它是一種特定類型的流程圖,圖中延伸的分支的寬度對應數據流量的大小,通常應用于能源、材料成分、金融等數據的可視化分析。
因1898年Matthew Henry Phineas Riall Sankey繪制的“蒸汽機的能源效率圖”而聞名,此后便以其名字命名為“桑基圖”。
抓住桑葚圖的核心定義,是主要用語表現一個數據流的過程。其實,我們熟悉的Matplotlib中也可以畫出桑葚圖,可是看起來是不是有那么一點點丑? 如下所示:
本篇使用另外一個常用的可視化庫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。
核心參數不同,主要是對桑葚圖的一些展示的配置。
sankey = Sankey("桑基圖示例", width=1200, height=600)
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} ]
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庫實現桑葚圖效果”的內容了,經過本文的學習后,相信大家對如何實現Python數據可視化Pyecharts庫實現桑葚圖效果這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。