为饼图添加标签#

本示例演示了 pie_label 方法的一些功能,该方法可为已使用 pie 创建的饼图添加标签。

最简单的选项是提供一个字符串列表来标记饼图的每个扇区。

import matplotlib.pyplot as plt

data = [36, 24, 8, 12]
labels = ['spam', 'eggs', 'bacon', 'sausage']

fig, ax = plt.subplots()
pie = ax.pie(data)
ax.pie_label(pie, labels)
pie label

如果您希望标签位于饼图外部,请将 distance(距离)设置为大于 1 的值。这是相对于饼图中心点距离的倍数(即半径的比例)。

pie label

您还可以旋转标签,使其朝向背离饼图中心的方向。

pie label

与其显式定义标签,不如传递一个格式字符串,用数值来标记扇区...

fig, ax = plt.subplots()
pie = ax.pie(data)
ax.pie_label(pie, '{absval:.1f}')
pie label

...或者用百分比来标记...

fig, ax = plt.subplots()
pie = ax.pie(data)
ax.pie_label(pie, '{frac:.1%}')
pie label

...或者两者兼有。

fig, ax = plt.subplots()
pie = ax.pie(data)
ax.pie_label(pie, '{absval:d}\n{frac:.1%}')
pie label

可以通过向 textprops 参数传递一个字典来配置字体样式。

fig, ax = plt.subplots()
pie = ax.pie(data)
ax.pie_label(pie, labels, textprops={'fontsize': 'large', 'color': 'white'})
pie label

pie_label 可以被重复调用以添加多组标签。

fig, ax = plt.subplots()
pie = ax.pie(data)

ax.pie_label(pie, labels, distance=1.1)
ax.pie_label(pie, '{frac:.1%}', distance=0.7)
ax.pie_label(pie, '{absval:d}', distance=0.4)

plt.show()
pie label

参考

本示例展示了以下函数、方法、类和模块的使用

标签:绘图类型:饼图 难度:初级

脚本总运行时间:(0 分 1.856 秒)

由 Sphinx-Gallery 生成的画廊