Matplotlib 餅圖
建立餅圖
使用 Pyplot,您可以使用 pie()
函式繪製餅圖。
示例
一個簡單的餅圖
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
結果
正如您所見,餅圖為陣列中的每個值(在本例中為 [35, 25, 25, 15])繪製了一個部分(稱為扇區)。
預設情況下,第一個扇區的繪圖從 x 軸開始,並沿逆時針方向移動。
注意:每個扇區的大小是透過將該值與其他所有值進行比較來確定的,公式如下:
該值除以所有值的總和:x/sum(x)
標籤
使用 labels
引數向餅圖新增標籤。
labels
引數必須是一個數組,其中為每個扇區包含一個標籤。
示例
一個簡單的餅圖
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels)
plt.show()
結果
開始角度
如前所述,預設的開始角度是 x 軸,但您可以透過指定 startangle
引數來更改開始角度。
startangle
引數以度為單位定義,預設角度為 0。
示例
將第一個扇區從 90 度開始
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels, startangle = 90)
plt.show()
結果
爆炸
也許您希望其中一個扇區脫穎而出?explode
引數允許您執行此操作。
如果指定了 explode
引數,並且它不是 None
,則它必須是一個數組,其中包含每個扇區的值。
每個值表示每個扇區距離圓心的顯示距離。
示例
將“Apples”扇區從圓心拉出 0.2
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels = mylabels, explode = myexplode)
plt.show()
結果
陰影色
透過將 shadows
引數設定為 True
為餅圖新增陰影。
示例
新增陰影
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]
plt.pie(y, labels = mylabels, explode = myexplode, shadow = True)
plt.show()
結果
顏色
您可以使用 colors
引數設定每個扇區的顏色。
如果指定了 colors
引數,它必須是一個數組,其中包含每個扇區的值。
示例
為每個扇區指定新顏色
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
mycolors = ["black", "hotpink", "b", "#4CAF50"]
plt.pie(y, labels = mylabels, colors = mycolors)
plt.show()
結果
您可以使用 十六進位制顏色值、140 種支援的顏色名稱中的任何一種,或者以下快捷方式之一。
'r'
- 紅色
'g'
- 綠色
'b'
- 藍色
'c'
- 青色
'm'
- 品紅色
'y'
- 黃色
'k'
- 黑色
'w'
- 白色
圖例
要為每個扇區新增解釋列表,請使用 legend()
函式。
示例
新增圖例
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels)
plt.legend()
plt.show()
結果
帶標題的圖例
要在圖例中新增標題,請在 legend
函式中新增 title
引數。
示例
新增帶標題的圖例
import matplotlib.pyplot as plt
import numpy as np
y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
plt.pie(y, labels = mylabels)
plt.legend(title = "Four Fruits:")
plt.show()
結果