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
,则它必须是一个数组,每个楔形图对应一个值。
每个值表示每个楔形图相对于饼图中心的偏移距离。
示例
将“苹果”楔形图从饼图中心拉出 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()
结果
自己试试 »
带标题的图例
要添加图例标题,请将 title
参数添加到 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(title = "Four Fruits:")
plt.show()
结果
自己试试 »