網站首頁 編程語言 正文
1.plt.pie()
餅圖 常常用來顯示 整體中各部分所占的比例,在python-matplotlib庫中通過plt.pie()方法來實現。
其主要參數如下:
x --------每一塊餅圖的比例組成的序列。可以是一個列表。如果其中元素的值加起來大于一,則會通過
歸一化處理后的結果。
explode -------- 指每一塊餅距離圓心的距離。默認為0。如果大于0,則餅即會分裂出來,即“分裂餅形圖”效果。
labels -------- 標簽,即每一塊餅圖外側顯示的說明文字
autopct -------- 設置餅圖百分比的格式。即字符串的格式,可以使用格式化字符串表達式或者format()函數的表達式。 不設定這個參數則不會顯示百分比的字符串。
pctdistance --------指百分比的位置刻度,默認為0.6。
shadow --------布爾類型,餅圖是否帶陰影(立體感)。默認False不帶。
labeldistance --------標記的繪制的位置,占半徑長度的比例。默認為1.1,如果大于1則顯示在餅的內側。
startangle --------起始繪制角度,默認從x軸正方向逆時針畫起。例如,設置為90則從y軸正方向畫起。
radius -------- 餅圖的半徑,默認為1。
counterclock -------- 指針方向。布爾類型。默認為True,表示逆時針。如果為False則表示順時針。
wedgeprops -------- wedge對象的屬性(wedge翻譯過來即三角木,楔子,即表示餅圖中的每一塊兒),可選參數,字典類型,默認為None。這個字典將會傳遞給wedge對象。如wedgeprops={‘linewidth’:2}表示wedge的線條寬度為2。
textprops -------- text標簽文本的屬性。也是一個字典類型,可選。默認為None。
center -------- 餅圖的原點。
frame -------- 是否顯示軸框架,布爾類型,默認不顯示,False。如果為True則會顯示軸框架。可以與grid()配合使用。通常不使用該參數,因為軸框架會干擾圖像效果。
rotatelabels -------- 可選,旋轉標簽到指定角度。(“指定”的含義是,以該位置連接圓心的半徑為水平基準。)?
2. 餅圖基本
繪制一張簡單的餅圖,圖像上的百分數顯示出一位小數。標簽為[‘A類’, ‘B類’, ‘C類’, ‘D類’]。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] ='#cc00ff'
x = [10, 20, 35, 25]
plt.pie(x, autopct='%1.1f%%', labels=['A類', 'B類', 'C類', 'D類'])
plt.title("產品數量占比")
plt.show()
圖像效果呈現如下:
3. 餅狀圖進階
設置背景顏色為’#00E5EE’,
百分數顯示一位小數,
四塊的顏色依次為[‘red’, ‘green’, ‘purple’, ‘yellow’]
B類 在餅圖中 向外分裂0.2個單位 ?explode=[0, 0.2, 0, 0],
從y軸正方向開始繪圖 ?startangle=90,
餅圖半徑設為1.1 ?radius=1.1,
標簽文本字體的大小為20,顏色為 ‘#8B1A1A’ ???textprops={‘fontsize’: 20, ‘color’: ‘#8B1A1A’}
顯示陰影效果,
標簽在半徑0.6單位處 ???pctdistance=0.6,
每個標簽都選擇一定的角度 ??rotatelabels=True
代碼如下:
import matplotlib.pyplot as plt
fig = plt.figure(1, facecolor='#00E5EE', figsize=(10, 8))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
x = [10, 20, 35, 25]
plt.pie(x,
labels=['A類', 'B類', 'C類', 'D類'],
autopct='%1.1f%%',
colors=['red', 'green', 'purple', 'yellow'],
explode=[0, 0.2, 0, 0],
startangle=90,
radius=1.1,
textprops={'fontsize': 20, 'color': '#8B1A1A'},
shadow=True,
pctdistance=0.6,
rotatelabels=True
)
# 設置標題文本、y坐標(即豎直方向上的位置),字體大小、顏色
plt.title("產品數量占比", y=1.05, fontsize=25, color='#cc00ff')
plt.show()
4. 環形圖
繪制環形圖仍然使用plt.pie()方法,
只需要設置其中的wedgeprops參數的屬性。
代碼示例如下
在上例代碼的基礎上,取消分裂,
添加 wedgeprops={‘width’: 0.4, ‘edgecolor’: ‘k’}。
然后把百分數的位置pctdistance設置為0.8。
import matplotlib.pyplot as plt
fig = plt.figure(1, facecolor='#00E5EE', figsize=(10, 8))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
x = [10, 20, 35, 25]
plt.pie(x,
labels=['A類', 'B類', 'C類', 'D類'],
autopct='%1.1f%%',
colors=['red', 'green', 'purple', 'yellow'],
startangle=90,
radius=1.1,
textprops={'fontsize': 20, 'color': '#8B1A1A'},
shadow=True,
pctdistance=0.8,
rotatelabels=True,
wedgeprops={'width': 0.4, 'edgecolor': 'k'}
)
plt.title("產品數量占比", y=1.05, fontsize=25, color='#cc00ff')
plt.show()
5. 內嵌環形圖
內嵌環形圖,以內嵌一次為例。即兩個圓環,需要調用兩次plt.pie()方法。
通過wedgeprops參數設置不同的環形邊界,通過radius設置不同的半徑。
全局字體為SimHei(黑體)。標題部分的局部字體使用“華文琥珀”(將系統的字體文件STHUPO.TTF復制到當前目錄下)。
import matplotlib.pyplot as plt
from matplotlib import font_manager
fig = plt.figure(1, facecolor='#ffffcc', figsize=(6, 6))
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['axes.facecolor'] = '#cc00ff'
x1 = [10, 20, 35, 25]
x2 = [8, 32, 20, 40]
plt.pie(x1,
autopct='%1.1f%%',
colors=['red', 'green', 'blue', 'yellow'],
startangle=90,
radius=1,
textprops={'fontsize': 16, 'color': 'purple'},
pctdistance=0.85,
rotatelabels=True,
wedgeprops={'linewidth': 2, 'width': 0.3, 'edgecolor': 'k'}
)
plt.pie(x2,
autopct='%1.1f%%',
colors=['red', 'green', 'blue', 'yellow'],
startangle=90,
radius=0.7,
textprops={'fontsize': 16, 'color': 'purple'},
pctdistance=0.6,
rotatelabels=True,
wedgeprops={'linewidth': 2, 'width': 0.4, 'edgecolor': 'k'}
)
plt.title("產品數量占比", fontsize=25, color='purple', fontproperties=font_manager.FontProperties(fname='STHUPO.TTF'))
plt.legend(['A類', 'B類', 'C類', 'D類'], bbox_to_anchor=(0.9, 0.2))
plt.show()
程序執行效果如下:
原文鏈接:https://blog.csdn.net/weixin_48964486/article/details/124104024
相關推薦
- 2023-01-13 Pytorch中的modle.train,model.eval,with?torch.no_grad
- 2022-12-29 R語言apply系列函數實例詳解_R語言
- 2023-10-26 無法加載文件 C:\Users\sundear\AppData\Roaming\npm\dva.ps
- 2022-06-14 C#實現密碼驗證與輸錯密碼賬戶鎖定_C#教程
- 2021-10-22 C#?基于NAudio實現對Wav音頻文件剪切(限PCM格式)_C#教程
- 2022-07-22 UC瀏覽器兼容問題
- 2022-08-10 Python編程獲取終端命令行參數示例_python
- 2022-04-08 一起來看看五條Python中的隱含特性_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支