欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 繪制?;鶊D全面解析

 更新時間:2021年09月22日 16:57:06   作者:執(zhí)念斬長河  
?;鶊D,即桑基能量分流圖,也叫?;芰科胶鈭D。它是一種特定類型的流程圖,圖中延伸的分支的寬度對應(yīng)數(shù)據(jù)流量的大小,通常應(yīng)用于能源、材料成分、金融等數(shù)據(jù)的可視化分析。試了一下用python畫?;鶊D,在這里整理了一下分享給大家

大家好,我是執(zhí)念斬長河,一個剛剛學(xué)習(xí)python繪圖的學(xué)渣,今天愉快學(xué)習(xí)《python數(shù)據(jù)可視化》(黑馬程序員編著),其中的“繪制桑基圖”內(nèi)容,我將其成功實現(xiàn),特此寫博文紀(jì)念一下。

前言

?;鶊D亦稱為桑基能量分流圖、?;芰科胶鈭D,是一種特定類型的流程圖,用于展示數(shù)據(jù)的“流動”變化。?;鶊D中包含若干條從左到右延展的分支,每條分支的寬度代表數(shù)據(jù)流量的大小。

題目再現(xiàn)

假設(shè)現(xiàn)在小明家日常生活的開支主要分為工資、副業(yè)、生活、購物、深造、運動、其他和買書幾類,且其中每項投入或產(chǎn)出值分別為0.7、0.3、-0.3、-0.1、-0.3、-0.1、-0.1、-0.1,請結(jié)合這些日常生活開支的數(shù)據(jù)繪制一個?;鶊D

在這里插入圖片描述

題目拆解

我們需要繪畫出桑基圖,首先知道創(chuàng)建?;鶊D的類.matplotlib.sankey模塊中專門提拱了表示桑基圖的類Sankey,通過創(chuàng)建Sankey類的對象可以創(chuàng)建?;鶊D,之后可以調(diào)用add()方法為桑基圖添加一些配置選項,最后調(diào)用finish()方法完成桑基圖的繪制.

創(chuàng)建?;鶊D

Sankey(ax=None, scale=1.0,unit='',format='%G',gap=0.25,radius=0.1,shoulder=0.03,
offset=0.15,head_angle=100,margin=0.4,tolerance=1e-06,**kwargs)

常用函數(shù)參數(shù)如下:

  • ax:若不提供該參數(shù),則會創(chuàng)建一個新的坐標(biāo)軸
  • scale:表示流量比例的因子,用于按比例調(diào)整分支的寬度
  • unit:表示與流量相關(guān)的物理單位的字符串.若設(shè)為None,則不會做數(shù)量標(biāo)記
  • gap:表示進(jìn)入或離開頂部或底部的分支間距,默認(rèn)為0.25

添加桑基圖選項

Sankey類對象可以調(diào)用add()方法為?;鶊D添加數(shù)據(jù)流量、標(biāo)簽等選項

add(self,patchlabel='',flows=None,orientations=None,labels='',
trunklength=1.0, pathlengths=0.25,prior=None,connect=(0,0),
rotation=0,**kwargs)

常用參數(shù)如下:

  • patchlabel:表示位于圖表中心的標(biāo)簽
  • flows:表示流量數(shù)據(jù)數(shù)組,其中投入數(shù)據(jù)為正值,產(chǎn)生數(shù)據(jù)為負(fù)值。
  • orientations:表示流的方向列表或用于所有流的單個方向,可以取值為0(從左側(cè)輸入、右側(cè)輸出)、1(從頂部到頂部)或-1(從底部到底部)
  • labels:表示流的標(biāo)簽列表或用于所有流的單個標(biāo)簽
  • trunklength:表示輸入組和輸出組的基之間的長度

返回?;鶊D繪制完成的對象

Sankey類對象在添加數(shù)據(jù)之后需要調(diào)用finish()方法完成繪制,并返回包含多個?;訄D列表,?;訄D包含以下字段.

  • patch:表示?;訄D的輪廓
  • flows:表示流量值(輸入為正,輸出為負(fù))
  • angles:表示箭頭角度的列表
  • tips:表示流路徑的尖端或凹陷位置的數(shù)組,其中每一行是一個(x,y)
  • text:表示中心標(biāo)簽的Text實例
  • texts:表示流分支標(biāo)簽的Text實例

3.完整源碼

if __name__ == '__main__':
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib.sankey import Sankey

    plt.rcParams['font.sans-serif'] = 'SimHei'
    plt.rcParams['axes.unicode_minus'] = False

    # 消費收入與支出數(shù)據(jù)
    flows = [0.7, 0.3,-0.3,-0.1,-0.3,-0.1,-0.1,-0.1]
    # 流的標(biāo)簽列表
    labels = ["工資","副業(yè)","生活","購物","深造","運動","其他","買書"]
    # 流的方向
    orientations = [1,1,0,-1,1,-1,1,0]
    # 創(chuàng)建Sankey類對象
    sankey = Sankey()
    sankey.add(flows=flows, # 收入與支出數(shù)據(jù)
               labels = labels, # 數(shù)據(jù)標(biāo)簽
               orientations = orientations, # 標(biāo)簽顯示的方向
               color='black', # 邊緣線條顏色
               fc="lightgreen", # 填充顏色
                patchlabel="生活消費", # 圖表中國心的標(biāo)簽
               alpha=0.7)

    # ?;鶊D繪制完成的對象
    diagrams = sankey.finish()
    diagrams[0].texts[4].set_color("r")   # 將下標(biāo)為4的數(shù)據(jù)標(biāo)簽設(shè)為紅色
    diagrams[0].texts[4].set_weight("bold") # 將下標(biāo)為4的數(shù)據(jù)標(biāo)簽設(shè)為字體標(biāo)簽
    diagrams[0].text.set_fontsize(20)     # 將中心標(biāo)簽的字體大小設(shè)為20
    diagrams[0].text.set_fontweight("bold") # 將中心標(biāo)簽的字體設(shè)為加粗
    plt.title('日常生活開支的?;鶊D')
    plt.show()

總結(jié)&后記

桑基圖真好玩,感覺挺有趣的。

到此這篇關(guān)于Python 繪制?;鶊D全面解析的文章就介紹到這了,更多相關(guān)python 繪制桑基圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用TFRecord存取多個數(shù)據(jù)案例

    使用TFRecord存取多個數(shù)據(jù)案例

    今天小編就為大家分享一篇使用TFRecord存取多個數(shù)據(jù)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python字符串下標(biāo)與切片及使用方法

    python字符串下標(biāo)與切片及使用方法

    這篇文章主要介紹了python字符串下標(biāo)與切片及使用方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • OpenCV+Imutils實現(xiàn)圖像的旋轉(zhuǎn)操作

    OpenCV+Imutils實現(xiàn)圖像的旋轉(zhuǎn)操作

    imutils是在OPenCV基礎(chǔ)上的一個封裝,達(dá)到更為簡結(jié)的調(diào)用OPenCV接口的目的,它可以輕松的實現(xiàn)圖像的平移,旋轉(zhuǎn),縮放,骨架化等一系列的操作。本文將用其實現(xiàn)圖像的旋轉(zhuǎn)操作,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • python基礎(chǔ)之并發(fā)編程(二)

    python基礎(chǔ)之并發(fā)編程(二)

    這篇文章主要介紹了詳解python的并發(fā)編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Pycharm debug調(diào)試時帶參數(shù)過程解析

    Pycharm debug調(diào)試時帶參數(shù)過程解析

    這篇文章主要介紹了Pycharm debug調(diào)試時帶參數(shù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實例

    Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實例

    這篇文章主要介紹了Python爬取當(dāng)當(dāng)、京東、亞馬遜圖書信息代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • python繪制直方圖的方法

    python繪制直方圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 終于明白tf.reduce_sum()函數(shù)和tf.reduce_mean()函數(shù)用法

    終于明白tf.reduce_sum()函數(shù)和tf.reduce_mean()函數(shù)用法

    這篇文章主要介紹了終于明白tf.reduce_sum()函數(shù)和tf.reduce_mean()函數(shù)用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Django的URLconf中使用缺省視圖參數(shù)的方法

    Django的URLconf中使用缺省視圖參數(shù)的方法

    這篇文章主要介紹了Django的URLconf中使用缺省視圖參數(shù)的方法,Django是最著名的Python的web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • 用ReactJS和Python的Flask框架編寫留言板的代碼示例

    用ReactJS和Python的Flask框架編寫留言板的代碼示例

    這篇文章主要介紹了用ReactJS和Python的Flask框架編寫留言板的代碼示例,其他的話用到了MongoDB這個方便使用JavaScript來操作的數(shù)據(jù)庫,需要的朋友可以參考下
    2015-12-12

最新評論