如何在 Matplotlib 饼图中避免标签和 autopct 重叠?
为避免 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()
输出
广告