Python繪圖-9餅圖(上)

餅圖(Pie Chart)是一種用于表示數據分類和相對大小的可視化圖形。在餅圖中,整個圓形代表數據的總和,而圓形內的各個扇形則代表不同的分類或類別,扇形的面積大小表示該類別在整體中所占的比例。餅圖通常用于展示數據的分布和比例關系,特別是當需要強調每個部分相對于整體的重要性時。在餅圖中,每個扇形的標簽通常會顯示該類別的名稱,而扇形的中心角或面積則表示該類別的數值或比例。

9.1默認餅圖

9.1.1圖像呈現

9.1.2 繪圖代碼

# 導入相關庫
import numpy as np  # 導入numpy庫,用于處理數組和數值計算
import matplotlib.pyplot as plt  # 導入matplotlib的繪圖模塊,用于可視化
# 定義一個列表,包含四個數值  
numbers = [15, 30, 45, 10]
plt.figure(dpi=120)
# 使用pyplot的pie方法繪制餅圖。只需傳入每個組分(即列表中的每個數值)的比例即可。  
# 這些數值會被自動歸一化,所以傳入的比例不需要預先計算。  
plt.pie(numbers)#只需傳入每個組分比例即可plt.show()

9.1.3注意

這段代碼的主要功能是使用matplotlib庫繪制一個餅圖,其中四個組分的比例分別為15%、30%、45%和10%。餅圖用于展示數據的分布和比例關系,每個扇形的面積大小表示該組分在整體中所占的比例。

9.2餅圖添加組分比例、名稱

9.2.1圖像呈現

9.2.2繪圖代碼?

# 導入相關庫
import numpy as np  # 導入numpy庫,用于處理數組和數值計算
import matplotlib.pyplot as plt  # 導入matplotlib的繪圖模塊,用于可視化# 數據
labels = ['類別A', '類別B', '類別C', '類別D']  # 創建一個列表,包含餅圖中每個扇形的標簽
sizes = [15, 30, 45, 10]# 創建一個列表,包含餅圖中每個扇形的大小(通常是百分比或數值)# 創建餅圖plt.rcParams['font.sans-serif'] = ['SimHei']  # 設置默認字體為新創建的字體,這里指定為'SimHei',這是為了支持中文顯示
# 創建一個新的圖形窗口和一個子圖軸對象
fig1, ax1 = plt.subplots()
# 在子圖軸對象上繪制餅圖,傳入扇形大小列表和標簽列表
# autopct參數用于顯示每個扇形的百分比,'%1.1f%%'表示保留一位小數的百分比格式
# startangle參數設置餅圖的起始角度,這里設置為90度,即餅圖從正上方開始
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
# 設置軸的比例,使其成為一個圓形,而不是橢圓形
# 這是因為默認情況下,matplotlib的餅圖繪制在一個方形區域內,設置'equal'可以使x軸和y軸的比例相同,從而顯示為圓形
ax1.axis('equal')# 顯示圖形
plt.show()

9.2.3注意

這段代碼的主要目的是使用matplotlib庫繪制一個包含四個類別(A、B、C、D)的餅圖,每個類別的大小由sizes列表定義,并且每個扇形的標簽由labels列表定義。通過plt.rcParams['font.sans-serif'] = ['SimHei']設置,確保了餅圖上的中文標簽能夠正確顯示。ax1.axis('equal')確保了餅圖是一個完美的圓形,而不是橢圓形。

9.3餅圖設置起始角度

9.3.1圖像呈現

9.3.2繪圖代碼?

# 導入相關庫
import numpy as np  # 導入numpy庫,用于處理數組和數值計算
import matplotlib.pyplot as plt  # 導入matplotlib的繪圖模塊,用于可視化
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設置默認字體為新創建的字體,這里指定為'SimHei',這是為了支持中文顯示
labels = '類別A', '類別B', '類別C', '類別D'# 定義餅圖的標簽
sizes = [15, 30, 45, 10]# 定義餅圖各部分的大小
explode1 = (0, 0.1, 0, 0)# 定義第一個餅圖的突出顯示參數,這里將'類別B'部分突出顯示
explode2 = (0, 0, 0.1, 0)# 定義第二個餅圖的突出顯示參數,這里將'類別C'部分突出顯示
plt.figure(figsize=(10, 10), dpi=120)# 創建一個新的圖形窗口,設置其大小為10x10英寸,DPI為120
plt.subplot(121)# 在圖形窗口上創建一個子圖,位置為1行2列的第1個位置
# 繪制第一個餅圖,使用sizes作為各部分的大小,labels作為標簽,autopct顯示百分比,startangle設置起始角度為90°
plt.pie(sizes,labels=labels,autopct='%1.1f%%',startangle=90)
# 設置第一個餅圖的標題
plt.title('Startangle = 90°')
# 在圖形窗口上創建另一個子圖,位置為1行2列的第2個位置
plt.subplot(122)
# 繪制第二個餅圖,與第一個餅圖類似,但起始角度為180°并突出顯示'類別C'
plt.pie(sizes,labels=labels,autopct='%1.1f%%',startangle=180 )
# 設置第二個餅圖的標題
plt.title('Startangle = 180°')
# 顯示圖形窗口  
plt.show()

9.3.3注意

  1. explode參數用于突出顯示餅圖的某個部分。例如,explode1中的(0, 0.1, 0, 0)意味著'類別B'部分將被突出顯示,與其他部分之間有一個0.1單位的間隔。
  2. startangle參數用于設置餅圖的起始角度。在這里,第一個餅圖從90°開始,第二個餅圖從180°開始。
  3. plt.rcParams['font.sans-serif'] = ['SimHei']這行代碼是為了確保中文字符在圖形中能夠正確顯示。這對于某些沒有預裝中文字體的環境來說是必要的。

9.4餅圖某組分爆炸顯示?

9.4.1圖像呈現

9.4.2繪圖代碼?

# 導入相關庫
import numpy as np  # 導入numpy庫,用于處理數組和數值計算
import matplotlib.pyplot as plt  # 導入matplotlib的繪圖模塊,用于可視化
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設置默認字體為新創建的字體,這里指定為'SimHei',這是為了支持中文顯示
labels = '類別A', '類別B', '類別C', '類別D'# 定義餅圖的標簽
sizes = [15, 30, 45, 10]# 定義餅圖各部分的大小
explode1 = (0, 0.1, 0, 0)# 定義第一個餅圖的突出顯示參數,這里將'類別B'部分突出顯示
explode2 = (0, 0, 0.1, 0)# 定義第二個餅圖的突出顯示參數,這里將'類別C'部分突出顯示
plt.figure(figsize=(10, 10), dpi=120)# 創建一個新的圖形窗口,設置其大小為10x10英寸,DPI為120
plt.subplot(121)# 在圖形窗口上創建一個子圖,位置為1行2列的第1個位置
# 繪制第一個餅圖,使用sizes作為各部分的大小,labels作為標簽,autopct顯示百分比,startangle設置起始角度為90°
# explode參數用于設置爆炸效果,這里使用了之前定義的explode1
plt.pie(sizes,explode=explode1, labels=labels,autopct='%1.1f%%',startangle=90)#開啟爆炸顯示
# 在圖形窗口上創建另一個子圖,位置為1行2列的第2個位置
plt.subplot(122)
# 繪制第二個餅圖,與第一個餅圖類似,但起始角度為180°并使用explode2作為爆炸效果參數
plt.pie(sizes,explode=explode2,labels=labels,autopct='%1.1f%%',startangle=180) #開啟爆炸顯示# 顯示圖形窗口
plt.show()

9.4.3注意

在這段代碼中,兩個餅圖分別展示了相同的數據,但起始角度和突出顯示的部分不同。explode參數用于設置突出顯示的效果,通過給每個部分分配一個值(通常是0或正數),可以使對應部分稍微偏離餅圖的中心。在這個例子中,類別B在第一個餅圖中被突出顯示,而類別C在第二個餅圖中被突出顯示。startangle參數用于設置餅圖的起始角度,使得餅圖從特定的角度開始繪制。

9.5餅圖設置文字屬性、圖例

9.5.1圖像呈現

9.5.2繪圖代碼

# 導入相關庫
import numpy as np  # 導入numpy庫,用于處理數組和數值計算
import matplotlib.pyplot as plt  # 導入matplotlib的繪圖模塊,用于可視化
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設置默認字體為新創建的字體,這里指定為'SimHei',這是為了支持中文顯示
labels = '類別A', '類別B', '類別C', '類別D'# 定義餅圖的標簽
sizes = [15, 30, 45, 10]# 定義餅圖各部分的大小,這些值通常表示各個部分在整體中所占的比例
# 定義餅圖的爆炸效果參數,這里將'類別B'部分稍微突出顯示
# 爆炸效果意味著該部分會被推開一點,與其他部分之間有一個小的間隔
explode = (0, 0.05, 0, 0)
# 創建一個新的圖形窗口,并設置其大小為7x7英寸,DPI(每英寸的點數)為120
plt.figure(figsize=(7, 7), dpi=120)
# 繪制餅圖,使用sizes作為各部分的大小,autopct顯示百分比,textprops設置文本屬性(這里為顏色),
# explode設置爆炸效果,startangle設置起始角度為90°
plt.pie(sizes,autopct='%1.1f%%',textprops={'color': "w"}, explode=explode,startangle=90)
# 添加圖例,將labels作為圖例的標簽,bbox_to_anchor設置圖例的位置,title設置圖例的標題為"分類"
plt.legend(labels, bbox_to_anchor=(1., .95), title="分類") #添加圖例
# 顯示圖形窗口
plt.show()

9.5.3注意

這段代碼創建了一個具有四個部分的餅圖,其中'類別B'部分被突出顯示。餅圖的起始角度設置為90°,意味著餅圖從垂直方向開始繪制。此外,圖例被添加到圖形的右上角,標題為"分類",并且設置了字體以支持中文顯示。autopct參數用于在餅圖的每個部分旁邊顯示其所占的百分比,而textprops參數則用于設置這些百分比文本的屬性,如顏色。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718721.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FW, IPS, IDS

文章目錄 FW (Firewall, 防火墻)IPS (Intrusion Prevention System, 入侵防御系統)IDS (Intrusion Detection System, 入侵檢測系統)IDS vs. FWIPS FW (Firewall, 防火墻) 產品定位: 防火墻的主要作用是進行網絡訪問控制。它充當網絡的門衛,控制進入和離…

《人間值得》讀書筆記

人的一生說短不短,說長不長。蕓蕓眾生,為了生活努力的掙扎,太少的人能衣食無憂,所以我們每天為了碎銀幾兩,為了生活奔波。 《人間值得》的主人公是一個90歲的老奶奶,她的生活經歷很豐富,她的人…

ObjectProvider學習

簡介 ObjectProvider 是 Spring Framework 5.0 之后引入的一個新接口,它提供了一個靈活的方式來訪問由 Spring 容器管理的 Bean。ObjectProvider 提供了一種更加類型安全的方式來查找和注入依賴項,同時還支持 Null 值的處理以及延遲初始化。 ObjectProv…

Window部署Jaeger

參考:windows安裝使用jaeger鏈路追蹤_windows安裝jaeger-CSDN博客 下載:Releases jaegertracing/jaeger GitHub Jaeger – Download Jaeger 目錄 1、安裝nssm 2、安裝運行 elasticsearch 3、安裝運行 3.1部署JaegerAgent 3.2部署JaegerCollec…

【全志D1-H 哪吒開發板】Debian系統安裝調教和點燈指南

全志D1-H開發板【哪吒】使用Deabian系統入門 特別說明: 因為涉及到操作較多,博文可能會導致格式丟失 其中內容,會根據后續使用做優化調整 目錄: 參考資料固件燒錄啟動調教點燈問題 〇、參考資料 官方資料 開發板-D1開發板【…

C++:函數模板整理

函數模板: 找到函數相同的實現思路&#xff0c;區別于函數的參數類型。 使用函數模板使得函數可容納不同類型的參數實現函數功能&#xff0c;而不是當類型不同時便編譯大量類型不同的函數&#xff0c;產生大量重復代碼和內存占用 函數模板格式&#xff1a; template<typ…

[Vulnhub]靶場 Red

kali:192.168.56.104 主機發現 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 …

ARM64匯編02 - 寄存器與指令基本格式

最近的文章可能會有較多修改&#xff0c;請關注博客哦 異常級別 ARMv8處理器支持4種異常等級&#xff08;Exception Level&#xff0c;EL&#xff09;。 EL0 為非特權模式&#xff0c;用于運行應用程序&#xff0c;其他資源訪問受限&#xff0c;權限不夠。 EL1 為特權模式&…

【王道操作系統】ch1計算機系統概述-06虛擬機

文章目錄 【王道操作系統】ch1計算機系統概述-06虛擬機01傳統計算機02虛擬機的基本概念&#xff08;1&#xff09;第一類虛擬機管理程序&#xff08;2&#xff09; 第二類虛擬機管理程序&#xff08;3&#xff09; 兩類虛擬機管理程序的對比 【王道操作系統】ch1計算機系統概述…

效果炸裂、刷爆各大視頻網站的EMO到底是怎么做到的?

文章鏈接&#xff1a;https://arxiv.org/abs/2402.17485 今天分享的工作是刷爆各大視頻平臺的EMO的背后的工作原理。提出的初衷是著手解決增強發言者的頭部特寫視頻生成中的現實感和表現力的挑戰&#xff0c;重點關注音頻提示與面部動作之間的動態和微妙關系。傳統技術具有局限…

【HarmonyOS】鴻蒙開發之Stage模型-UIAbility的啟動模式——第4.4章

UIAbi lity的啟動模式簡介 一共有四種:singleton,standard,specified,multion。在項目目錄的:src/main/module.json5。默認開啟模式為singleton(單例模式)。如下圖 singleton&#xff08;單實例模式&#xff09;啟動模式 每個UIAbility只存在唯一實例。任務列表中只會存在一…

測試管理進階 | 量力而行:避免成為替罪羊

職場中,我們常常面臨是否幫助他人的抉擇。盡管善良是美德,但過度的好人卡可能會給自己帶來麻煩。本文將探討如何在職場中量力而行,避免成為替罪羊,以及如何保持高效和合理的職責劃分。 我們在工作中常常會遇到一些需要幫助他人的情況,作為團隊的一員,我們希望能夠積極地協…

Linux運維_Bash腳本_編譯安裝libGD-2.3.3

Linux運維_Bash腳本_編譯安裝libGD-2.3.3 Bash (Bourne Again Shell) 是一個解釋器&#xff0c;負責處理 Unix 系統命令行上的命令。它是由 Brian Fox 編寫的免費軟件&#xff0c;并于 1989 年發布的免費軟件&#xff0c;作為 Sh (Bourne Shell) 的替代品。 您可以在 Linux 和…

六、繼承(一)

1 繼承的引入 以往我們想分別實現描述學生、老師的類&#xff0c;可能會這樣子做&#xff1a; class Student {string _name;string _number;int _tel;int id;string _address;int _age; }; class Teacher {string _name;int _level;int _tel;int id;string _address;int _ag…

【歸并排序】 詳細解析 動圖演示 逐圖解析 洛谷P1177【模板】排序 sort【快速排序】

文章目錄 歸并排序1.歸并排序的復雜度分析2.細節解釋3.歸并排序動圖演示3(1) 我們的拆分過程如下↓ 4.code↓ 洛谷P1177【模板】排序數據規模與約定code&#xff08;歸并排序&#xff09;↓code&#xff08;sort排序【快速排序】&#xff09; 完結撒花(&#xffe3;▽&#xff…

閱讀筆記 | REFORMER: THE EFFICIENT TRANSFORMER

閱讀論文&#xff1a; Kitaev, Nikita, ?ukasz Kaiser, and Anselm Levskaya. “Reformer: The efficient transformer.” arXiv preprint arXiv:2001.04451 (2020). 背景與動機 這篇論文發表較早&#xff0c;主要關注Transformer的效率問題。標準的Transformer模型在許多自然…

數據中臺:數字中國戰略關鍵技術實施

這里寫目錄標題 前言為何要建設數據中臺數據中臺建設痛點數據中臺學習資料聚焦前沿&#xff0c;方法論體系更新與時俱進&#xff0c;緊跟時代熱點深入6大行業&#xff0c;提煉實踐精華大咖推薦&#xff0c;數字化轉型必備案頭書 前言 在數字中國這一國家戰略的牽引下&#xff0…

測試基礎|質量保障體系從1到N的思考

在2023年,重點構建了團隊的質量保障體系,基本完成了從0到1的過程積累,也在多個不同的場合做了相關的分享,收獲了很多同行給的建議和意見。今年的首個工作目標是把這套質量保障體系運營好,去覆蓋更多的團隊,完成從1到N的過程,讓更多的團隊從這個質量體系中獲益,保障基本…

Node插件開發(1)-快速入門

在使用Electron開發客戶端時&#xff0c;如果現有Node模塊所提供的功能無法滿足需求&#xff0c;我們可以使用C開發自定義的Node模塊&#xff0c;也稱插件&#xff08;addon&#xff09;。 Node.js插件的擴展名為.node&#xff0c;是二進制文件&#xff0c;其本質上是動態鏈接…

基于springboot+vue的響應式企業員工績效考評系統(源碼+論文)

文章目錄 前言 一、功能設計 1 普通員工功能 2 主管功能 3 系統管理員功能 4 評分標準功能 5 PC端與手機端 6 制圖 二、功能實現 普通員工 1普通員工登錄 2公告板塊 3日志板塊 主管 1主管登錄 2公告板塊 3日志板塊 4績效評分板塊 5個人信息板塊 系統管理員…