導包
一定不要忘記導入我們需要的包啊!!!!
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示正負号
plt.show()
學習網站
餅圖學習網站:https://www.cnblogs.com/biyoulin/p/9565350.html
餅圖
- plt.pie()的參數
- x:畫餅圖的資料,sum(x)>1,歸一化;sum(x)<1,畫sum(x)個圓
x = [0.3, 0.4, 0.2] #sum(x)<1
plt.pie(x)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyIjNwQDNwQTMxEDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
y = [1, 5, 6] #sum(y)>1
plt.pie(y)
- labels:每一塊餅圖外側顯示的說明文字
- explode:每一塊離開中心的距離,0:在原來的餅圖裡;
- startangle:起始繪制角度,預設從x軸正方向逆時針畫起,如設定為90則從y軸正方向畫起
- shadow:在餅圖下回一個陰影,預設:False,即不畫陰影
- labeldistance:label标記的繪制位置,相當于半徑的比例,預設值為1.1,如果小于1則繪制在餅圖内側
- autopct:控制餅圖内百分比設定,可以使用format字元串或者format function。——’%1.1f’指小數點前後位數(沒有用空格補齊)
plt.pie(y,
labels=["strawberry", "mango", "peach"],
autopct='%1.1f') #無百分号
plt.pie(y,
labels=["strawberry", "mango", "peach"],
autopct='%1.1f%%') #有百分号
- pctdistance:類似于labeldistance,指定autopct的位置刻度,預設值為0.6
plt.pie(y,
labels=["strawberry", "mango", "peach"],
autopct='%1.1f%%',
pctdistance=0.8)
- radius:控制餅圖半徑,預設值為1
- counterclook:指定指針方向,預設為True逆時針
- wedgeprops:字典類型,預設值為None,例如:wedgeprops={‘linewidth’:3}指令為設定wedge線寬為3
- textprops:設定标簽和比例文字的格式,預設值為None
plt.pie(y,
labels=["strawberry", "mango", "peach"],
textprops={'fontsize':'20', 'color':'lightsalmon'})
- center:圖示中心的位置,浮點類型的清單,預設值為(0,0)
- frame:布爾類型,預設值為False,若為True,表示繪制帶有表的軸架構
- 正圓
plt.pie(y, labels=["strawberry", "mango", "peach"])
plt.axis('equal')#顯示正圓
- 組合圖形
plt.pie(y, labels=["strawberry", "mango", "peach"], frame=True)
plt.xlim(-1, 1) #設定x軸顯示範圍
plt.ylim(-1, 1) #設定y軸顯示範圍
plt.grid() #顯示坐标網格線
plt.pie(y,
labels=["strawberry", "mango", "peach"],
textprops={'fontsize':'20', 'color':'lightsalmon'})
plt.axis('equal')#顯示正圓
plt.legend()#顯示圖例
圓環圖
x = [1, 5, 2]
plt.pie(x, labels=["strawberry", "mango", "peach"])
plt.pie([1], colors='w', radius=0.7)
内嵌環形餅圖
plt.figure(dpi = 200) #更加清晰
elements = ['面粉', '砂糖', '奶油', '果醬', '堅果']
a = [0.4, 0.15, 0.2, 0.1, 0.15]
b = [0.3, 0.25, 0.2, 0.1, 0.15]
colors = ['c', 'g', 'b', 'orange', 'pink']
outer_colors = colors
inner_colors = colors
wedges1, texts1, autotexts1 = plt.pie(a,
autopct = '%3.1f%%',
pctdistance = 0.85,
textprops = dict(color='w'),
colors = outer_colors,
wedgeprops = dict(width = 0.3, edgecolor = 'w'))
wedges2, texts2, autotexts2 = plt.pie(b,
radius = 0.7,
colors = inner_colors,
autopct = '%3.1f%%',
pctdistance = 0.75,
textprops = dict(color='w'),
wedgeprops = dict(width = 0.3, edgecolor = 'w'))
plt.axis('equal')#顯示正圓
plt.legend(wedges1,
elements,
fontsize = 12,
title = '配料表',
loc = 1,
bbox_to_anchor = (0.91, 0, 0.4, 1))
plt.title('不同果醬面包配料百分比')