餅圖只能顯示一系列資料。餅圖在一個資料系列中顯示專案的大小(稱為楔形),與專案的總和成比例。餅圖中的資料點顯示為整個餅圖的百分比。
Matplotlib API有一個pie()
函式,它生成一個表示陣列中資料的餅圖。每個楔形的分數面積由x/sum(x)
給出。如果sum(x<1
,那麼x
的值直接給出小數區域,並且陣列將不被標準化。結果餅圖將有一個大小為1
的空楔 - sum(x)。
如果圖形和軸是方形,或者軸方向相等,則餅圖看起來最佳。
下表列出了餅圖的引數 -
x
- 陣列式,楔形大小。labels
- 列表。一系列字串,為每個楔形提供標籤。colors
- 一系列matplotlib顏色引數,餅圖將通過它回圈。如果為None
,將使用當前活動週期中的顏色。Autopct
- string
用於用數值標記楔形。標籤將放在楔子內。格式字串將為fmt%pct
。以下程式碼使用pie()
函式來顯示計算機語言課程註冊的學生列表的餅圖。使用autopct
引數,相應的百分比顯示在相應的楔形內部,該引數設定為%1.2f%
。
範例程式碼:
#! /usr/bin/env python
#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字型)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【易百教學】,商業轉載請聯絡作者獲得授權,非商業請保留原文連結:
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.axis('equal')
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.pie(students, labels = langs,autopct='%1.2f%%')
plt.show()
執行上面範例程式碼,得到以下結果 -