python 用 matplotlib 餅圖參數詳解 plt.pie()


1、加載庫

import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt

 

2、逐步添加參數,查看繪圖效果

def ax_set_title(s): ax.set_title(label=f'No.{i+1}\n'+s,    # 標題的文本內容
                 loc='right',    # 標題的位置
                 family='Arial',    # 標題文本的字體類型
                 size=13,    # 字體大小
 ) # 配置字體,顯示中文
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 配置坐標軸刻度值模式,顯示負號
mpl.rcParams['axes.unicode_minus'] = False # 定義數據
cnt_pct = [0.35, 0.15, 0.20, 0.30] cs = ['red', 'orange', 'yellow', 'green'] labs = [f'{e.upper()} 難度水平' for e in 'abcd'] explode = (0.1, 0.1, 0.1, 0.1) # 初始化圖表區
fig, axes = plt.subplots(nrows=4, ncols=5, figsize=(16, 12), facecolor='cornsilk' ) axes = axes.ravel() # 選擇子區 1
i = 0 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
 ) ## 設置標題
ax_set_title(s='x') # 選擇子區 2
i = 1 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
 ) ## 設置標題
ax_set_title(s='explode') # 選擇子區 3
i = 2 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
 ) ## 設置標題
ax_set_title(s='labels') # 選擇子區 4
i = 3 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
 ) ## 設置標題
ax_set_title(s='colors') ## 設置標題
ax_set_title(s='labels') # 選擇子區 5
i = 4 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
 ) ## 設置標題
ax_set_title(s='autopct') # 選擇子區 6
i = 5 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.8,    # 鍥形塊數據標注的徑向距離
 ) ## 設置標題
ax_set_title(s='pctdistance') # 選擇子區 7
i = 6 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.8,    # 鍥形塊數據標注的徑向距離
       shadow=True, ) ## 設置標題
ax_set_title(s='shadow') # 選擇子區 8
i = 7 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.8,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=1.02,    # 鍥形塊標簽的徑向距離
 ) ## 設置標題
ax_set_title(s='labeldistance') # 選擇子區 9
i = 8 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
 ) ## 設置標題
ax_set_title(s='startangle') # 選擇子區 10
i = 9 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
 ) ## 設置標題
ax_set_title(s='radius') # 選擇子區 11
i = 10 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
 ) ## 設置標題
ax_set_title(s='counterclock') # 選擇子區 12
i = 11 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver',} ) ## 設置標題
ax_set_title(s='edgecolor') # 選擇子區 13
i = 12 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 3, } ) ## 設置標題
ax_set_title(s='linewidth') # 選擇子區 14
i = 13 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 3, 'linestyle': ':' } ) ## 設置標題
ax_set_title(s='linestyle') # 選擇子區 15
i = 14 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 3, 'linestyle': ':' }, # 鍥形塊標簽文本和數據標注文本的字體屬性
       textprops=dict(color='blue')  # 字體顏色
 ) ## 設置標題
ax_set_title(s='fontcolor') # 選擇子區 16
i = 15 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 1, 'linestyle': '-' }, # 鍥形塊標簽文本和數據標注文本的字體屬性
       textprops=dict(color='k',  # 字體顏色
                      fontsize=14, ) ) ## 設置標題
ax_set_title(s='fontsize') # 選擇子區 17
i = 16 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 1, 'linestyle': '-' }, # 鍥形塊標簽文本和數據標注文本的字體屬性
       textprops=dict(color='k',  # 字體顏色
                      fontsize=12, ), rotatelabels=True    # 是否旋轉鍥形塊的標簽與其角度對應
 ) ## 設置標題
ax_set_title(s='rotatelabels') # 選擇子區 18
i = 17 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('cornsilk') # 選擇子區 19
i = 18 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('cornsilk') # 選擇子區 20
i = 19 ax = axes[i] ## 繪制餅圖
ax.pie(x=cnt_pct,    # 產生鍥形塊的數據
       explode=explode,    # 鍥形塊分離距離序列 
       labels=labs,    # 鍥形塊標簽列表
       colors=cs,    # 鍥形塊的顏色列表
       autopct='%3.1f%%',    # 鍥形塊的數據標注格式 (88.8%)
       pctdistance=0.5,    # 鍥形塊數據標注的徑向距離
       shadow=True, labeldistance=0.9,    # 鍥形塊標簽的徑向距離
       startangle=90,    # 餅圖的初始擺放角度
       radius=1.2,    # 餅圖半徑
       counterclock=False,    # 是否讓餅圖按逆時針順序呈現
       # 鍥形塊邊界屬性字典
       wedgeprops={'edgecolor': 'silver', 'linewidth': 1, 'linestyle': '-' }, # 鍥形塊標簽文本和數據標注文本的字體屬性
       textprops=dict(color='k',  # 字體顏色
                      fontsize=12, ), frame=True,    # 是否繪制框架
       rotatelabels=False    # 是否旋轉鍥形塊的標簽與其角度對應
 ) ## 設置標題
ax_set_title(s='frame') ## 設置子區背景色
ax.set_facecolor('cornsilk') # 設置整個子區的布局
fig.subplots_adjust(left=0, bottom=0, right=0.9, top=1, wspace=0.2,    # 子區間空白區域的寬度的歸一化值
                    hspace=0.3);    # 子區間空白區域的高度的歸一化值
plt.savefig('pie.jpg')

圖形:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM