Python利用matplotlib實(shí)現(xiàn)餅圖繪制
前言
眾所周知,matplotlib.pyplot 提供繪制不同表格繪制方法,如使用plot()方法繪制折線(xiàn),bar()繪制柱
在matplotlib.pyplot 中還有一種圖表用于直觀表示占比情況的餅圖,在matplotlib官網(wǎng)上也列舉出非常多關(guān)于餅圖的案例。
本期,我們將詳細(xì)學(xué)習(xí)matplotlib 繪制餅圖相關(guān)屬性的學(xué)習(xí),let's go~
1. 等高線(xiàn)圖概述
什么是餅圖?
- 餅圖將各項(xiàng)的大小與總項(xiàng)和的比例顯示在一個(gè)圓里
- 餅圖展示通過(guò)不同大小,來(lái)確定各項(xiàng)的占比
- 餅圖相同顏色的數(shù)據(jù)標(biāo)記組成一個(gè)數(shù)據(jù)系列
- 餅圖可分為三維餅圖、復(fù)合餅圖、分離餅圖
餅圖常用場(chǎng)景
- 餅圖可用在需要暫時(shí)各個(gè)部分構(gòu)成比
- 餅圖可反映一個(gè)維度各項(xiàng)指標(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軸間距相等
案例展示
本期,我們將適用餅圖來(lái)分析操作系統(tǒng)市場(chǎng)占比情況
案例數(shù)據(jù)準(zhǔn)備:使用random.randint產(chǎn)生5個(gè)數(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("手機(jī)系統(tǒng)占比分析") plt.show()
2. 餅圖屬性
設(shè)置餅圖的顏色
關(guān)鍵字:colors
可取值選項(xiàng):None或者顏色列表
顏色列表可以由如下組成:
- 表示顏色的英文單詞:如紅色"red"
- 表示顏色單詞的簡(jiǎn)稱(chēng)如:紅色"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è)置值后,其指定的部分會(huì)突出顯示
設(shè)置填入百分比數(shù)值
關(guān)鍵字:autopct
默認(rèn)為:None
可選擇值形式:
- 格式字符串如:'%1.1f%%'
- 函數(shù):可以調(diào)用函數(shù)內(nèi)容
餅圖旋轉(zhuǎn)
從x軸逆時(shí)針旋轉(zhuǎn)角度:startangle;默認(rèn)為0,浮點(diǎn)類(lèi)型
指定分?jǐn)?shù)方向順逆時(shí)針:counterclock;默認(rèn)為T(mén)rue,bool類(lèi)型
設(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)整餅圖的大小
我們?cè)趯?shí)際制作餅圖時(shí),會(huì)遇到改變餅圖的大小,這是我們可以借助餅圖屬性關(guān)鍵字radius
radius:設(shè)置餅圖半徑大小
除此之外,我們還要使用textprops來(lái)控制顯示的標(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. 添加圖例
我們?cè)陲瀳D中顯示各項(xiàng)占比情況時(shí),會(huì)在圖表的旁邊添加一組圖例說(shuō)明。
- pyplot.pie()方法會(huì)返回patchee.Wedge列表、文本列表等數(shù)據(jù)
- pyplot.legend()方法傳入wedge元素和指定的labels標(biāo)簽
- 同時(shí)可以同legend()方法bbox_to_anchor來(lái)設(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. 鏤空餅圖
在餅圖中,我們有時(shí)候也用到嵌套鏤空的餅圖。
- 嵌套可以多次調(diào)用pyplot.pie()方法
- 鏤空可以借助pyplot.pie()屬性wedgeprops來(lái)進(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é)
本期,對(duì)matplotlib.pyplot 繪制餅圖pie()相關(guān)屬性的學(xué)習(xí)。在繪制餅圖時(shí),我們會(huì)根據(jù)實(shí)際需求改變餅圖的大小,嵌套餅圖、添加柱狀圖等圖形輔助查看
以上是本期內(nèi)容,歡迎大佬們點(diǎn)贊評(píng)論,下期見(jiàn)~?
以上就是Python利用matplotlib實(shí)現(xiàn)餅圖繪制的詳細(xì)內(nèi)容,更多關(guān)于Python matplotlib 繪制餅圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制
- Python+matplotlib繪制餅圖和堆疊圖
- Python+matplotlib實(shí)現(xiàn)餅圖的繪制
- python matplotlib模塊基本圖形繪制方法小結(jié)【直線(xiàn),曲線(xiàn),直方圖,餅圖等】
- python通過(guò)matplotlib生成復(fù)合餅圖
- python使用Matplotlib畫(huà)餅圖
- Python通過(guò)matplotlib畫(huà)雙層餅圖及環(huán)形圖簡(jiǎn)單示例
- python利用matplotlib庫(kù)繪制餅圖的方法示例
- Python 如何利用pandas和matplotlib繪制餅圖
相關(guān)文章
Django項(xiàng)目定期自動(dòng)清除過(guò)期session的2種方法實(shí)例
如果用戶(hù)主動(dòng)退出,session會(huì)自動(dòng)清除,如果沒(méi)有退出就一直保留,記錄數(shù)越來(lái)越大,要定時(shí)清理沒(méi)用的session,下面這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目定期自動(dòng)清除過(guò)期session的2種方法,需要的朋友可以參考下2022-08-08Python中的模式匹配庫(kù)Pampy使用實(shí)例解析
這篇文章主要為大家介紹了Python中的模式匹配庫(kù)Pampy使用實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Flask和Django框架中自定義模型類(lèi)的表名、父類(lèi)相關(guān)問(wèn)題分析
這篇文章主要介紹了Flask和Django框架中自定義模型類(lèi)的表名、父類(lèi)相關(guān)問(wèn)題,結(jié)合實(shí)例形式對(duì)比分析了Flask框架與Django框架表名定義方式的不同之處,并簡(jiǎn)單描述了框架的父類(lèi)繼承問(wèn)題,需要的朋友可以參考下2018-07-07python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的完整代碼
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python高級(jí)搜索實(shí)現(xiàn)高效搜索GitHub資源
這篇文章主要為大家介紹了python高級(jí)搜索來(lái)高效搜索GitHub,從而高效獲取所需資源,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下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的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)資料,文中通過(guò)實(shí)例代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-12-12用Python創(chuàng)建聲明性迷你語(yǔ)言的教程
這篇文章主要介紹了用Python創(chuàng)建聲明性迷你語(yǔ)言的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04