使用Matplotlib在Python中建立環形圖
環形圖是一種圓形圖表,以圓形的方式顯示資料的相對錶示。環形圖和餅圖看起來相似,但環形圖的中心有一個空洞,而餅圖則沒有。可以使用Matplotlib為包含不同比例的各種分組的資料集建立環形圖。在本文中,我們將使用Matplotlib建立一個環形圖。
演算法
可以使用matplotlib庫提供的方法繪製Matplotlib中的環形圖。我們可以按照以下演算法在Matplotlib中製作環形圖。
匯入必要的庫,包括Matplotlib。
定義要繪製的資料,包括標籤和大小。
使用plt.subplots()建立一個圖形和軸物件。
使用plt.subplots()的subplot_kw引數將繪圖的縱橫比設定為相等。
使用ax.pie()的startangle引數設定繪圖的起始角度。
使用ax.pie()建立環形圖,將大小作為資料傳遞,並將標籤作為labels引數傳遞。
透過使用plt.Circle()新增內圓,使用ax.legend()新增圖例,使用plt.setp()更改字型大小和粗細,以及使用ax.set_title()設定圖表標題來自定義圖表。
使用plt.show()顯示圖表。
安裝Matplotlib
Matplotlib是Python中的一個數據視覺化庫,允許你建立各種圖表。要安裝它,你可以在命令列或終端中鍵入以下命令。
Pip install matplotlib
建立虛擬資料
要建立環形圖,我們需要虛擬資料,可以使用Python中的matplotlib進行視覺化。我們建立一個標籤列表和一個大小列表,其中包含每個標籤類別的相對大小。
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges'] sizes = [25, 30, 15, 30]
建立基本的環形圖
我們將使用plt.pie()函式建立環形圖。此函式將大小列表作為引數,並建立一個表示每個類別的環形圖。
語法
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, normalize=None, *, data=None)
傳遞給plt.pie()函式的引數具有其特定的含義,如下所述:
x - 以值序列的形式繪製的資料。
explode - 一系列值,指定每個扇區的半徑偏移分數。
labels - 一系列字串,用作每個扇區的標籤。
colors - 一系列顏色,用於每個扇區。
autopct - 用於格式化百分比文字標籤的格式字串。如果為None,則不顯示標籤。
pctdistance - 從餅圖中心到繪製百分比標籤的距離。
shadow - 一個布林值,指示是否在餅圖下方繪製陰影。
startangle - 以度為單位,開始繪製第一個扇區的角度。
radius - 餅圖的半徑。如果為None,則半徑設定為1。
counterclock - 一個布林值,指示是逆時針繪製扇區還是順時針繪製扇區。
wedgeprops - 傳遞給用於建立每個扇區的Wedge類的關鍵字引數字典。
textprops - 傳遞給用於建立文字標籤的Text類的關鍵字引數字典。
center - 餅圖的中心,作為(x, y)座標的元組。
frame - 一個布林值,指示是否在餅圖周圍繪製框架。
rotatelabels - 一個布林值,指示是否旋轉文字標籤。
normalize - 一個布林值,指示是否在繪圖前將資料標準化到100%。
示例
在下面的示例中,我們使用標籤和大小列表來建立一個環形圖,表示每個標籤類別。我們首先使用plt.subplots()函式建立一個圖形和軸物件。我們將軸的縱橫比設定為“相等”,以確保圖表是圓形的。然後,我們使用ax.pie()函式建立一個餅圖,楔形寬度為0.5,起始角度為-40。
# Data
import matplotlib.pyplot as plt
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges']
sizes = [25, 30, 15, 30]
# Plot
fig, ax = plt.subplots(figsize=(10, 6), subplot_kw=dict(aspect="equal"))
wedges, texts = ax.pie(sizes, wedgeprops=dict(width=0.5), startangle=-40)
# Inner circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Add labels
ax.legend(wedges, labels,
title="Fruits",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1))
plt.setp(texts, size=12, weight="bold")
ax.set_title("Fruit Distribution")
plt.show()
輸出

自定義環形圖
我們可以透過更改圖表中的表示顏色、字型更改、軸標籤更改等來進一步自定義環形圖。
示例
要更改圖表的顏色,我們可以將顏色列表傳遞給ax.pie函式的wedge props引數。在下面的示例中,我們將之前的環形圖顏色更改為紅色、綠色、藍色和橙色。
import matplotlib.pyplot as plt
# Data
labels = ['Apples', 'Bananas', 'Grapes', 'Oranges']
sizes = [25, 30, 15, 30]
colors = ['red', 'green', 'blue', 'orange']
# Plot
fig, ax = plt.subplots(figsize=(10, 6), subplot_kw=dict(aspect="equal"))
wedges, texts = ax.pie(sizes, wedgeprops=dict(width=0.5, edgecolor='w'), startangle=-40, colors=colors)
# Inner circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
# Add labels
ax.legend(wedges, labels,
title="Fruits",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1))
plt.setp(texts, size=12, weight="bold")
ax.set_title("Fruit Distribution")
plt.show()
輸出

結論
在本文中,我們討論瞭如何使用matplotlib建立任何資料的環形圖表示,以及環形圖和餅圖之間的基本區別。Matplotlib是一個數據視覺化庫,用於以各種圖表的形式顯示資料。環形圖也可以根據特定的資料視覺化需求進行自定義。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP