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