Python利用matplotlib實現(xiàn)餅圖繪制
前言
眾所周知,matplotlib.pyplot 提供繪制不同表格繪制方法,如使用plot()方法繪制折線,bar()繪制柱
在matplotlib.pyplot 中還有一種圖表用于直觀表示占比情況的餅圖,在matplotlib官網(wǎng)上也列舉出非常多關(guān)于餅圖的案例。
本期,我們將詳細(xì)學(xué)習(xí)matplotlib 繪制餅圖相關(guān)屬性的學(xué)習(xí),let's go~
1. 等高線圖概述
什么是餅圖?
- 餅圖將各項的大小與總項和的比例顯示在一個圓里
- 餅圖展示通過不同大小,來確定各項的占比
- 餅圖相同顏色的數(shù)據(jù)標(biāo)記組成一個數(shù)據(jù)系列
- 餅圖可分為三維餅圖、復(fù)合餅圖、分離餅圖
餅圖常用場景
- 餅圖可用在需要暫時各個部分構(gòu)成比
- 餅圖可反映一個維度各項指標(biāo)占總體的占比情況
- 餅圖適用在只看大體占比,不要數(shù)據(jù)精度的情況
繪制等餅圖步驟
- 導(dǎo)入matplotlib.pyplot模塊
- 準(zhǔn)備數(shù)據(jù),可以使用numpy/pandas整理數(shù)據(jù)
- 調(diào)用pyplot.pie()繪制餅圖
- 調(diào)用axis方法調(diào)整x/y軸間距相等
案例展示
本期,我們將適用餅圖來分析操作系統(tǒng)市場占比情況
案例數(shù)據(jù)準(zhǔn)備:使用random.randint產(chǎn)生5個數(shù)值
import numpy as np size = np.random.randint(0,100,5)
繪制餅圖
import matplotlib.pyplot as plt\ plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"]) plt.title("手機系統(tǒng)占比分析") plt.show()
2. 餅圖屬性
設(shè)置餅圖的顏色
關(guān)鍵字:colors
可取值選項:None或者顏色列表
顏色列表可以由如下組成:
- 表示顏色的英文單詞:如紅色"red"
- 表示顏色單詞的簡稱如:紅色"r",黃色"y"
- RGB格式:十六進(jìn)制格式如"#88c999";(r,g,b)元組形式
設(shè)置標(biāo)簽
關(guān)鍵字:labels
默認(rèn)為:None
需要傳入列表形式的值
設(shè)置突出部分
關(guān)鍵字:explode
默認(rèn)為:None
需要傳入列表數(shù)據(jù)
如果設(shè)置值后,其指定的部分會突出顯示
設(shè)置填入百分比數(shù)值
關(guān)鍵字:autopct
默認(rèn)為:None
可選擇值形式:
- 格式字符串如:'%1.1f%%'
- 函數(shù):可以調(diào)用函數(shù)內(nèi)容
餅圖旋轉(zhuǎn)
從x軸逆時針旋轉(zhuǎn)角度:startangle;默認(rèn)為0,浮點類型
指定分?jǐn)?shù)方向順逆時針:counterclock;默認(rèn)為True,bool類型
設(shè)置陰影
關(guān)鍵字:shadow
默認(rèn)為False
在餅圖下繪制出陰影
我們結(jié)合第一節(jié)的案例添加一些屬性,需要顯示占比數(shù)值,顏色顯示指定顏色,突出MAC占比
plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"], autopct="%1.1f%%", explode=[0,0.1,0,0,0], colors=("r","blue","#88c999",(1,1,0),"0.5"))
3. 調(diào)整餅圖的大小
我們在實際制作餅圖時,會遇到改變餅圖的大小,這是我們可以借助餅圖屬性關(guān)鍵字radius
radius:設(shè)置餅圖半徑大小
除此之外,我們還要使用textprops來控制顯示的標(biāo)簽的大小
plt.pie(size,labels=["Windows","MAC","Linux","Android","Other"],autopct="%1.1f%%", explode=[0,0.1,0,0,0], colors=("r","blue","#88c999",(1,1,0),"0.5"),radius=0.5,textprops={'size':"smaller"})
4. 添加圖例
我們在餅圖中顯示各項占比情況時,會在圖表的旁邊添加一組圖例說明。
- pyplot.pie()方法會返回patchee.Wedge列表、文本列表等數(shù)據(jù)
- pyplot.legend()方法傳入wedge元素和指定的labels標(biāo)簽
- 同時可以同legend()方法bbox_to_anchor來設(shè)置圖例的位置
La = ["Windows","MAC","Linux","Android","Other"] def f(pct,n): num = int(round(pct*np.sum(n))) return "{:.1f}%\n{:d}w".format(pct,num) wedges ,text,autotexts =plt.pie(size,autopct=lambda pct: f(pct,size), colors=("r","blue","#88c999",(1,1,0),"0.5"),textprops=dict(color='w')) plt.legend(wedges,La,loc="right",bbox_to_anchor=(1,0,0.3,1))
5. 鏤空餅圖
在餅圖中,我們有時候也用到嵌套鏤空的餅圖。
- 嵌套可以多次調(diào)用pyplot.pie()方法
- 鏤空可以借助pyplot.pie()屬性wedgeprops來進(jìn)行設(shè)置
- wedgeprops={"width":0.3,"edgecolor":'w'}
cmap = plt.get_cmap("tab20c") plt.pie(size, colors=("r","blue","#88c999",(1,1,0),"0.5"),textprops=dict(color='w'),wedgeprops=dict(width=0.3,edgecolor='w')) plt.pie(size, colors= cmap(np.arange(3)*5),radius=0.7,wedgeprops=dict(width=0.3,edgecolor='w'),textprops={'size':"smaller"})
總結(jié)
本期,對matplotlib.pyplot 繪制餅圖pie()相關(guān)屬性的學(xué)習(xí)。在繪制餅圖時,我們會根據(jù)實際需求改變餅圖的大小,嵌套餅圖、添加柱狀圖等圖形輔助查看
以上是本期內(nèi)容,歡迎大佬們點贊評論,下期見~?
以上就是Python利用matplotlib實現(xiàn)餅圖繪制的詳細(xì)內(nèi)容,更多關(guān)于Python matplotlib 繪制餅圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Django項目定期自動清除過期session的2種方法實例
如果用戶主動退出,session會自動清除,如果沒有退出就一直保留,記錄數(shù)越來越大,要定時清理沒用的session,下面這篇文章主要給大家介紹了關(guān)于Django項目定期自動清除過期session的2種方法,需要的朋友可以參考下2022-08-08Flask和Django框架中自定義模型類的表名、父類相關(guān)問題分析
這篇文章主要介紹了Flask和Django框架中自定義模型類的表名、父類相關(guān)問題,結(jié)合實例形式對比分析了Flask框架與Django框架表名定義方式的不同之處,并簡單描述了框架的父類繼承問題,需要的朋友可以參考下2018-07-07python實現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼
這篇文章主要給大家介紹了關(guān)于python實現(xiàn)圖片轉(zhuǎn)字符畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python高級搜索實現(xiàn)高效搜索GitHub資源
這篇文章主要為大家介紹了python高級搜索來高效搜索GitHub,從而高效獲取所需資源,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11Python實現(xiàn)簡單的學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)簡單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03CentOS 6.5中安裝Python 3.6.2的方法步驟
centos 6.5默認(rèn)自帶的python版本為2.6,而下面這篇文章主要給大家介紹了關(guān)于在CentOS 6.5中安裝Python 3.6.2的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12python如何利用paramiko執(zhí)行服務(wù)器命令
這篇文章主要介紹了python如何利用paramiko執(zhí)行服務(wù)器命令,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11python數(shù)據(jù)分析之如何刪除value=0的行
這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析之如何刪除value=0的行的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-12-12