如何避免 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()