Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
CSDN 課程推薦:《Python 數(shù)據(jù)分析與挖掘》,講師劉順祥,浙江工商大學(xué)統(tǒng)計學(xué)碩士,數(shù)據(jù)分析師,曾擔(dān)任唯品會大數(shù)據(jù)部擔(dān)任數(shù)據(jù)分析師一職,負責(zé)支付環(huán)節(jié)的數(shù)據(jù)分析業(yè)務(wù)。曾與聯(lián)想、亨氏、網(wǎng)魚網(wǎng)咖等企業(yè)合作多個企業(yè)級項目。
Matplotlib 系列文章:
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(一):初識 Matplotlib 與其 matplotibrc 配置文件
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(二):文本描述 / 中文支持 / 畫布 / 網(wǎng)格等基本圖像屬性
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(三):圖例 / LaTeX / 刻度 / 子圖 / 補丁等基本圖像屬性
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(四):線性圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(五):散點圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(六):直方圖 / 柱狀圖 / 條形圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(七):餅狀圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(八):等高線 / 等值線圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(九):極區(qū)圖 / 極坐標(biāo)圖 / 雷達圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(十):3D 圖的繪制
- Python 數(shù)據(jù)分析三劍客之 Matplotlib(十一):最熱門最常用的 50 個圖表【譯文】
另有 NumPy、Pandas 系列文章已更新完畢,歡迎關(guān)注:
- NumPy 系列文章:https://itrhx.blog.csdn.net/category_9780393.html
- Pandas 系列文章:https://itrhx.blog.csdn.net/category_9780397.html
推薦學(xué)習(xí)資料與網(wǎng)站(博主參與部分文檔翻譯):
- NumPy 官方中文網(wǎng):https://www.numpy.org.cn/
- Pandas 官方中文網(wǎng):https://www.pypandas.cn/
- Matplotlib 官方中文網(wǎng):https://www.matplotlib.org.cn/
- NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table
文章目錄
- 【1x00】方法描述
- 【2x00】簡單示例
- 【3x00】按角度調(diào)整扇形標(biāo)簽
- 【4x00】顯示圖例
- 【5x00】突出顯示扇形塊
- 【6x00】顯示各扇區(qū)所占百分比
- 【7x00】旋轉(zhuǎn)餅狀圖
- 【8x00】自定義每個扇形和文字屬性
這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/106025845 未經(jīng)授權(quán),禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!
【1x00】方法描述
matplotlib.pyplot.pie() 方法用于繪制餅狀圖。
基本語法:
matplotlib.pyplot.pie(x[, explode=None, labels=None, colors=None,autopct=None, pctdistance=0.6, shadow=False,labeldistance=1.1, startangle=None, radius=None,counterclock=True, wedgeprops=None, textprops=None,center=(0, 0), frame=False, rotatelabels=False, \*, data=None])| x | 每個扇形塊的大小,數(shù)組形式,大小單位是比例 |
| explode | 指定對應(yīng)扇形塊脫離餅圖的半徑大小,數(shù)組形式,其中元素個數(shù)應(yīng)該是 len(x) |
| labels | 每個扇形塊上的文本標(biāo)簽,列表形式 |
| labeldistance | 每個扇形塊上的文本標(biāo)簽與扇形中心的距離,float 類型,默認 1.1 |
| colors | 每個扇形塊對應(yīng)的顏色,數(shù)組形式 |
| autopct | 用于計算每個扇形塊所占比例,字符串或者函數(shù)類型 例如:autopct='%1.1f%%' 表示浮點數(shù),保留一位小數(shù),并添加百分比符號 |
| pctdistance | 每個扇形塊的中心與 autopct 生成的文本之間的距離,float 類型,默認 0.6 |
| shadow | 是否為扇形添加陰影效果 |
| startangle | 將餅圖按照逆時針旋轉(zhuǎn)指定的角度,float 類型 |
| radius | 餅圖的半徑,如果是 None,則將被設(shè)置為 1,float 類型 |
| counterclock | 是否按照逆時針對扇形圖進行排列,bool 類型,默認 True |
| wedgeprops | 傳遞給繪制每個扇形圖對象的參數(shù),字典形式,參數(shù)值參見 Wedge 例如:wedgeprops = {'linewidth': 3} 設(shè)置扇形邊框線寬度為 3 |
| textprops | 傳遞給文本對象的參數(shù),字典形式 例如:textprops={'color': 'r', 'fontsize': 15} 設(shè)置文字為紅色,大小為15 |
| center | 餅圖圓心在畫布上是坐標(biāo),默認 (0, 0) |
| frame | 是否顯示 x, y 坐標(biāo)軸外框,默認 False |
| rotatelabels | 是否按照角度進行調(diào)整每塊餅的 label 文本標(biāo)簽,默認 False |
【2x00】簡單示例
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Golang', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']# 指定4個扇區(qū)所占比例以及扇區(qū)的顏色,扇區(qū)文本標(biāo)簽距離扇區(qū)中心1.1 plt.pie(x, labels=labels, colors=colors, labeldistance=1.1) plt.title('餅狀圖簡單示例')plt.show()【3x00】按角度調(diào)整扇形標(biāo)簽
rotatelabels 屬性可以設(shè)置是否按照角度調(diào)整每塊餅的 label(標(biāo)簽)顯示方式。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Go', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']# 指定4個扇區(qū)所占比例以及扇區(qū)的顏色,扇區(qū)文本標(biāo)簽距離扇區(qū)中心1.1,按角度調(diào)整 labels plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, rotatelabels=True) plt.title('餅狀圖按角度調(diào)整 labels 示例')plt.show()【4x00】顯示圖例
與前面文章中繪制線性圖、散點圖、條形圖一樣,調(diào)用 matplotlib.pyplot.legend() 方法可繪制圖例,該方法的參數(shù)解釋參見前文《Python 數(shù)據(jù)分析三劍客之 Matplotlib(三):圖例 / LaTeX / 刻度 / 子圖 / 補丁等基本圖像屬性》
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Go', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']plt.pie(x, labels=labels, colors=colors, labeldistance=1.1) plt.title('餅狀圖顯示圖例示例') plt.legend(bbox_to_anchor=(1, 1))plt.show()這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/106025845 未經(jīng)授權(quán),禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!
【5x00】突出顯示扇形塊
explode 參數(shù)可以實現(xiàn)突出顯示某一塊扇區(qū),接收數(shù)組形式的參數(shù),這個數(shù)組中的元素個數(shù)應(yīng)該是 len(x),即和扇區(qū)塊的數(shù)量相同。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Golang', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']# 指定第一個扇區(qū)塊脫離餅圖的半徑大小為0.3,其它扇區(qū)不脫離 plt.pie(x, labels=labels, colors=colors, labeldistance=1.1, explode=[0.3, 0, 0, 0]) plt.title('餅狀圖突出顯示扇形塊示例') plt.legend(bbox_to_anchor=(1, 1))plt.show()【6x00】顯示各扇區(qū)所占百分比
autopct 參數(shù)可用于計算每個扇形塊所占比例,接收字符串或者函數(shù)類型,例如:autopct='%1.1f%%' 表示浮點數(shù),保留一位小數(shù),并添加百分比符號。pctdistance 參數(shù)用于調(diào)整每個扇形塊的中心與 autopct 生成的文本之間的距離,float 類型,默認 0.6。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Golang', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']plt.pie(x, # 每個扇形塊所占比例labels=labels, # 扇形塊文本標(biāo)簽colors=colors, # 扇形塊顏色labeldistance=1.1, # 扇形塊標(biāo)簽距離中心的距離explode=[0.3, 0, 0, 0], # 第一個扇形塊突出顯示autopct='%1.1f%%', # 顯示百分比,保留一位小數(shù)pctdistance=0.5 # 百分比文本距離餅狀圖中心的距離 ) plt.title('餅狀圖顯示各扇區(qū)所占百分比示例') plt.legend(bbox_to_anchor=(1, 1)) # 顯示圖例plt.show()【7x00】旋轉(zhuǎn)餅狀圖
startangle 參數(shù)可以選擇餅狀圖,改變餅狀圖放置的角度。注意是按照逆時針旋轉(zhuǎn)。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Golang', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']plt.pie(x, # 每個扇形塊所占比例labels=labels, # 扇形塊文本標(biāo)簽colors=colors, # 扇形塊顏色labeldistance=1.1, # 扇形塊標(biāo)簽距離中心的距離explode=[0.3, 0, 0, 0], # 第一個扇形塊突出顯示autopct='%1.1f%%', # 顯示百分比,保留一位小數(shù)pctdistance=0.5, # 百分比文本距離餅狀圖中心的距離startangle=-90 # 逆時針旋轉(zhuǎn)-90°,即順時針旋轉(zhuǎn)90° ) plt.title('餅狀圖旋轉(zhuǎn)角度示例') plt.legend(bbox_to_anchor=(1, 1)) # 顯示圖例plt.show()【8x00】自定義每個扇形和文字屬性
wedgeprops 參數(shù)以字典形式為每個扇形添加自定義屬性,例如:wedgeprops = {'linewidth': 3} 設(shè)置扇形邊框線寬度為 3,更多其他參數(shù)值參見 Wedge;
textprops 參數(shù)同樣以字典形式為文本對象添加自定義屬性,例如:textprops={'color': 'r', 'fontsize': 15} 設(shè)置文字為紅色,大小為15,更多其他參數(shù)值參見 Text。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [10, 30, 45, 15] labels = ['Java', 'Golang', 'Python', 'C++'] colors = ['red', 'yellow', 'blue', 'green']plt.pie(x, # 每個扇形塊所占比例labels=labels, # 扇形塊文本標(biāo)簽colors=colors, # 扇形塊顏色labeldistance=1.1, # 扇形塊標(biāo)簽距離中心的距離explode=[0.3, 0, 0, 0], # 第一個扇形塊突出顯示autopct='%1.1f%%', # 顯示百分比,保留一位小數(shù)pctdistance=0.6, # 百分比文本距離餅狀圖中心的距離shadow=True, # 顯示陰影效果wedgeprops={ # 為每個扇形添加屬性'width': 0.7, # 扇形寬度0.7'edgecolor': '#98F5FF', # 扇形邊緣線顏色'linewidth': 3 # 扇形邊緣線寬度},textprops={ # 為文字添加屬性'fontsize': 13, # 文字大小'fontweight': 'bold', # 文字粗細'color': 'k' # 文字顏色,黑色} ) plt.title('餅狀圖自定義每個扇形和文字屬性示例', fontweight='bold') plt.legend(bbox_to_anchor=(1, 1), borderpad=0.6) # 顯示圖例plt.show()這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/106025845 未經(jīng)授權(quán),禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!
總結(jié)
以上是生活随笔為你收集整理的Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发银行鲜肉贷申请条件 浦发鲜肉贷怎么办
- 下一篇: 最新LPR公布,已连续6个月没动,房贷有