Matplotlib餅圖


餅圖只能顯示一系列資料。餅圖在一個資料系列中顯示專案的大小(稱為楔形),與專案的總和成比例。餅圖中的資料點顯示為整個餅圖的百分比。

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()

執行上面範例程式碼,得到以下結果 -