製作店鋪銷量佔比圓環圖
在資料分析中,資料視覺化是非常重要的一環。在視覺化的過程中,圓環圖是一種常用的方式,特別適合於展示各類別佔比情況。本文將介紹如何使用 Python 中的 pandas 和 matplotlib 庫,來製作一個店鋪銷量佔比的圓環圖。
資料準備
我們假設現在有一份銷售資料的 Excel 檔案,其中包含了不同店鋪的銷售數量資料。我們將使用 pandas 庫來讀取和處理這份資料。下面是讀取資料的程式碼:
import pandas as pd # 從Excel檔案中讀取資料 data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建資料夾\新建 XLSX 工作表.xlsx')
資料預處理
我們需要按照店鋪名稱來聚合銷售數量資料,以便於後續的視覺化。我們可以使用 pandas 庫的 groupby
函式來實現這一步驟。下面是程式碼:
# 按店鋪名稱聚合銷售數量 sales_by_shop = data.groupby('店鋪名稱')['銷售數量'].sum()
視覺化
現在我們已經得到了按店鋪名稱聚合後的銷售數量資料,接下來就可以使用 matplotlib 庫來製作圓環圖了。下面是完整的視覺化程式碼:
import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['SimHei'] # 指定中文字型為黑體 # 繪製圓環圖 fig, ax = plt.subplots(figsize=(8, 8)) colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 設定顏色 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) # 新增標題和圖例 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
函式建立一個畫布,並設定畫布的大小。然後,我們定義了一個顏色列表,用於設定不同類別的顏色。
接著,我們呼叫 pie
函式來繪製圓環圖。在該函式中,我們傳入按店鋪名稱聚合後的銷售數量資料,設定了一系列引數,如起始角度、自動計算百分比等。
最後,我們新增了標題和圖例,並修改了字型大小。最後一步呼叫 show
函式來顯示圖形。
效果展示
下面是繪製出的店鋪銷量佔比圓環圖:
完整程式碼:
import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['SimHei'] # 指定中文字型為黑體 # 從Excel檔案中讀取資料 data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建資料夾\新建 XLSX 工作表.xlsx') # 按店鋪名稱聚合銷售數量 sales_by_shop = data.groupby('店鋪名稱')['銷售數量'].sum() # 繪製圓環圖 fig, ax = plt.subplots(figsize=(8, 8)) colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 設定顏色 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) # 新增標題和圖例 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()
總結
在本文中,我們介紹瞭如何使用 Python 的 pandas 和 matplotlib 庫,來繪製一個店鋪銷量佔比圓環圖。我們按照店鋪名稱聚合銷售數量資料,使用 matplotlib 庫繪製圓環圖,並最終展示了結果。希望這篇文章對你在資料分析和視覺化方面有所幫助。