Python利用pandas和matplotlib實(shí)現(xiàn)繪制圓環(huán)圖
制作店鋪銷量占比圓環(huán)圖
在數(shù)據(jù)分析中,數(shù)據(jù)可視化是非常重要的一環(huán)。在可視化的過(guò)程中,圓環(huán)圖是一種常用的方式,特別適合于展示各類別占比情況。本文將介紹如何使用 Python 中的 pandas 和 matplotlib 庫(kù),來(lái)制作一個(gè)店鋪銷量占比的圓環(huán)圖。
數(shù)據(jù)準(zhǔn)備
我們假設(shè)現(xiàn)在有一份銷售數(shù)據(jù)的 Excel 文件,其中包含了不同店鋪的銷售數(shù)量數(shù)據(jù)。我們將使用 pandas 庫(kù)來(lái)讀取和處理這份數(shù)據(jù)。下面是讀取數(shù)據(jù)的代碼:
import pandas as pd # 從Excel文件中讀取數(shù)據(jù) data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夾\新建 XLSX 工作表.xlsx')
數(shù)據(jù)預(yù)處理
我們需要按照店鋪名稱來(lái)聚合銷售數(shù)量數(shù)據(jù),以便于后續(xù)的可視化。我們可以使用 pandas 庫(kù)的 groupby 函數(shù)來(lái)實(shí)現(xiàn)這一步驟。下面是代碼:
# 按店鋪名稱聚合銷售數(shù)量
sales_by_shop = data.groupby('店鋪名稱')['銷售數(shù)量'].sum()可視化
現(xiàn)在我們已經(jīng)得到了按店鋪名稱聚合后的銷售數(shù)量數(shù)據(jù),接下來(lái)就可以使用 matplotlib 庫(kù)來(lái)制作圓環(huán)圖了。下面是完整的可視化代碼:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei'] # 指定中文字體為黑體
# 繪制圓環(huán)圖
fig, ax = plt.subplots(figsize=(8, 8))
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 設(shè)置顏色
wedges, texts, autotexts = ax.pie(sales_by_shop, labels=sales_by_shop.index, startangle=90, autopct='%1.1f%%', wedgeprops={'width': 0.3}, labeldistance=1.15, colors=colors)
# 添加標(biāo)題和圖例
ax.set_title('店鋪銷量占比', size=20)
ax.legend(wedges, sales_by_shop.index,
title="店鋪名稱",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1),
fontsize=14)
# 修改字體大小
plt.setp(texts, size=15)
plt.setp(autotexts, size=14)
# 顯示圖形
plt.show()首先,我們使用 subplots 函數(shù)創(chuàng)建一個(gè)畫布,并設(shè)置畫布的大小。然后,我們定義了一個(gè)顏色列表,用于設(shè)置不同類別的顏色。
接著,我們調(diào)用 pie 函數(shù)來(lái)繪制圓環(huán)圖。在該函數(shù)中,我們傳入按店鋪名稱聚合后的銷售數(shù)量數(shù)據(jù),設(shè)置了一系列參數(shù),如起始角度、自動(dòng)計(jì)算百分比等。
最后,我們添加了標(biāo)題和圖例,并修改了字體大小。最后一步調(diào)用 show 函數(shù)來(lái)顯示圖形。
效果展示
下面是繪制出的店鋪銷量占比圓環(huán)圖:

完整代碼
import pandas as pd
import matplotlib.pyplot as plt
# 設(shè)置中文字體為黑體
plt.rcParams['font.family'] = ['SimHei']
# 從Excel文件中讀取數(shù)據(jù)
data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夾\新建 XLSX 工作表.xlsx')
# 按店鋪名稱聚合銷售數(shù)量
sales_by_shop = data.groupby('店鋪名稱')['銷售數(shù)量'].sum()
# 使用 groupby() 方法按店鋪名稱聚合銷售數(shù)量,并計(jì)算每個(gè)店鋪的銷售總量,結(jié)果保存在 sales_by_shop Series 中
# 繪制圓環(huán)圖
fig, ax = plt.subplots(figsize=(8, 8))
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 設(shè)置顏色
wedges, texts, autotexts = ax.pie(sales_by_shop, labels=sales_by_shop.index,
startangle=90, autopct='%.2f%%',
wedgeprops={'width': 0.3}, labeldistance=1.15,
colors=colors)
# 使用 ax.pie() 方法繪制圓環(huán)圖,其中傳遞銷售數(shù)量數(shù)據(jù)、標(biāo)簽、起始角度、百分比格式、扇形區(qū)域?qū)挾?、?biāo)簽距離和顏色等參數(shù),并將返回的三個(gè)對(duì)象分別保存在 wedges、texts 和 autotexts 變量中。
# 添加標(biāo)題和圖例
ax.set_title('店鋪銷量占比', size=20) # 設(shè)置標(biāo)題
ax.legend(wedges, sales_by_shop.index, # 添加圖例
title="店鋪名稱", # 圖例標(biāo)題
loc="center left", # 圖例位置
bbox_to_anchor=(1, 0, 0.5, 1), # 圖例框的坐標(biāo)
fontsize=14)
# 修改字體大小
plt.setp(texts, size=15) # 修改標(biāo)簽字體大小
plt.setp(autotexts, size=14) # 修改百分比字體大小
# 顯示圖形
plt.show()總結(jié)
在本文中,我們介紹了如何使用 Python 的 pandas 和 matplotlib 庫(kù),來(lái)繪制一個(gè)店鋪銷量占比圓環(huán)圖。我們按照店鋪名稱聚合銷售數(shù)量數(shù)據(jù),使用 matplotlib 庫(kù)繪制圓環(huán)圖,并最終展示了結(jié)果。希望這篇文章對(duì)你在數(shù)據(jù)分析和可視化方面有所幫助。
到此這篇關(guān)于Python利用pandas和matplotlib實(shí)現(xiàn)繪制圓環(huán)圖的文章就介紹到這了,更多相關(guān)Python圓環(huán)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python通過(guò)pil模塊獲得圖片exif信息的方法
這篇文章主要介紹了python通過(guò)pil模塊獲得圖片exif信息的方法,實(shí)例分析了Python中pil模塊的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
Python+matplotlib實(shí)現(xiàn)餅圖的繪制
Matplotlib是一個(gè)Python的2D繪圖庫(kù),它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形。本文將利用Matplotlib庫(kù)繪制餅圖,感興趣的可以了解一下2022-03-03
python 實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器(gui界面)
這篇文章主要介紹了python 如何實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11
Python爬蟲爬取愛(ài)奇藝電影片庫(kù)首頁(yè)的實(shí)例代碼
這篇文章主要介紹了Python爬蟲爬取愛(ài)奇藝電影片庫(kù)首頁(yè)的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
Python實(shí)戰(zhàn)之IQ測(cè)試系統(tǒng)的實(shí)現(xiàn)
通常,智商測(cè)試測(cè)驗(yàn)一個(gè)人在數(shù)字、空間、邏輯、詞匯、創(chuàng)造、記憶等方面的能力。本文將利用Python實(shí)現(xiàn)一個(gè)IQ測(cè)試系統(tǒng),感興趣的可以了解一下2022-09-09
Python?中strip()函數(shù)詳細(xì)說(shuō)明及使用方法
strip()函數(shù)是Python字符串方法之一,用于處理字符串的前導(dǎo)和尾隨空白字符,它返回一個(gè)新字符串,該字符串是原始字符串去除前導(dǎo)和尾隨空格(包括空格、制表符、換行符等)后的結(jié)果,這篇文章主要介紹了Python?中strip()函數(shù)詳細(xì)說(shuō)明及使用方法,需要的朋友可以參考下2024-02-02

