如何避免 Matplotlib 饼图中标签和 autopct 重叠?

matplotlibserver side programmingprogramming

为了避免 matplotlib 饼图中标签和 autopct  重叠,我们可以使用  legend() 方法将标签作为图例。

步骤

  • 初始化变量 n=20 以获取饼图中的部分数。

  • 使用 numpy 创建切片和活动。

  • 使用十六进制字母创建随机颜色,范围为 20。

  • 使用 pie() 方法绘制带有切片、颜色和切片数据点的饼图作为标签。

  • 制作标签列表(使用 autopct 重叠的标签)。

  • 使用 legend() 方法避免标签和 autopct 重叠。

  • 要显示图形,请使用 show()  方法。

示例

import random
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
n = 20
slices = np.arange(n)
activities = np.arange(n)
colors = ["#" + ''.join([random.choice('0123456789ABCDEF') for j in range(6)])
for i in range(n)]
patches, texts = plt.pie(slices,
   colors=colors,
   startangle=90,
   labels=slices)
labels = ['{0} - {1:1.2f} %'.format(i, j) for i, j in zip(activities,
100.*slices/slices.sum())]
plt.legend(patches, labels, loc='center left', bbox_to_anchor=(-0.35, .5), fontsize=8)
plt.show()

输出


相关文章