我們可以使用 pyplot 中的 pie() 方法來繪制餅圖。
pie() 方法語法格式如下:
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]
參數(shù)說明:
x:浮點型數(shù)組,表示每個扇形的面積。
explode:數(shù)組,表示各個扇形之間的間隔,默認(rèn)值為0。
labels:列表,各個扇形的標(biāo)簽,默認(rèn)值為 None。
colors:數(shù)組,表示各個扇形的顏色,默認(rèn)值為 None。
autopct:設(shè)置餅圖內(nèi)各個扇形百分比顯示格式,%d%% 整數(shù)百分比,%0.1f 一位小數(shù), %0.1f%% 一位小數(shù)百分比, %0.2f%% 兩位小數(shù)百分比。
labeldistance:標(biāo)簽標(biāo)記的繪制位置,相對于半徑的比例,默認(rèn)值為 1.1,如 <1則繪制在餅圖內(nèi)側(cè)。
pctdistance::類似于 labeldistance,指定 autopct 的位置刻度,默認(rèn)值為 0.6。
shadow::布爾值 True 或 False,設(shè)置餅圖的陰影,默認(rèn)為 False,不設(shè)置陰影。
radius::設(shè)置餅圖的半徑,默認(rèn)為 1。
startangle::起始繪制餅圖的角度,默認(rèn)為從 x 軸正方向逆時針畫起,如設(shè)定 =90 則從 y 軸正方向畫起。
counterclock:布爾值,設(shè)置指針方向,默認(rèn)為 True,即逆時針,F(xiàn)alse 為順時針。
wedgeprops :字典類型,默認(rèn)值 None。參數(shù)字典傳遞給 wedge 對象用來畫一個餅圖。例如:wedgeprops={'linewidth':5} 設(shè)置 wedge 線寬為5。
textprops :字典類型,默認(rèn)值為:None。傳遞給 text 對象的字典參數(shù),用于設(shè)置標(biāo)簽(labels)和比例文字的格式。
center :浮點類型的列表,默認(rèn)值:(0,0)。用于設(shè)置圖標(biāo)中心位置。
frame :布爾類型,默認(rèn)值:False。如果是 True,繪制帶有表的軸框架。
rotatelabels :布爾類型,默認(rèn)為 False。如果為 True,旋轉(zhuǎn)每個 label 到指定的角度。
以下實例我們簡單實用 pie() 來創(chuàng)建一個柱形圖:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
顯示結(jié)果如下:
設(shè)置餅圖各個扇形的標(biāo)簽與顏色:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # 設(shè)置餅圖標(biāo)簽
colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 設(shè)置餅圖顏色
)
plt.title("W3Cschool Pie Test") # 設(shè)置標(biāo)題
plt.show()
顯示結(jié)果如下:
突出顯示第二個扇形,并格式化輸出百分比:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # 設(shè)置餅圖標(biāo)簽
colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 設(shè)置餅圖顏色
explode=(0, 0.2, 0, 0), # 第二部分突出顯示,值越大,距離中心越遠(yuǎn)
autopct='%.2f%%', # 格式化輸出百分比
)
plt.title("W3Cschool Pie Test")
plt.show()
注意:默認(rèn)情況下,第一個扇形的繪制是從 x 軸開始并逆時針移動:
更多建議: