亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2021年09月29日 16:37:43   作者:麥片加奶不加糖  
這篇文章主要介紹了Python數(shù)據(jù)可視化如何使用Pyecharts庫(kù)來(lái)實(shí)現(xiàn)桑葚圖效果圖,文中給出實(shí)現(xiàn)的示例代碼,有需要的朋友可以借鑒參考想,希望能夠有所幫助

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

?;鶊D(Sankey diagram),即?;芰糠至鲌D,也叫?;芰科胶鈭D。

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

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

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

本篇使用另外一個(gè)常用的可視化庫(kù)pyecharts來(lái)畫(huà)圖。

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

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

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

pip install pyecharts

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

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

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

1. 先申明使用sankey

sankey = Sankey("桑基圖示例", width=1200, height=600)

2. 使用add 添加對(duì)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é)點(diǎn)和連接的邊。需要傳入一個(gè)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()
 

最后給大家分享一個(gè)小例子:

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庫(kù)實(shí)現(xiàn)桑葚圖效果的詳細(xì)內(nèi)容,更多關(guān)于Pyecharts庫(kù)實(shí)現(xiàn)桑葚圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論