使用matplotlib制作饼图的时候,标签和百分比数值的位置是可以单独调整的,但是调整后百分比会和标签重叠,我想实现的效果是标签在上,百分比在标签下方,并且中间间隔一定的距离,如下示意:
希望标签A、标签B这些在上面,22%、29%这些百分比数值在对应的标签下方,并且有一定间隔(视觉引导线可去掉)
请问各位,有啥方法可以实现吗?谢谢~~
你可以关闭掉 autopct,直接自行组织百分比数字到 labels 内,例如
import matplotlib.pyplot as plt
import numpy as np
a = [35, 25, 25, 15]
labels = ['aaa\n\n{:.2f}%'.format(a[0]/sum(a)*100)
,'bbb\n\n{:.2f}%'.format(a[1]/sum(a)*100)
,'ccc\n\n{:.2f}%'.format(a[2]/sum(a)*100)
,'ddd\n\n{:.2f}%'.format(a[3]/sum(a)*100)
]
y = np.array(a)
plt.pie(y,labels=labels,labeldistance=1.3)
plt.show()
你要看看函数pie的参数说明,如下
pie绘制饼状图,传入的参数分别为:
sizes 切片大小
explode 切片向外偏移距离
labels 切片标签
autopct 切片所占百分比(由sizes计算而来)
shadow 阴影
startangle 起始角度
colors 切片颜色
labeldistance 标签(labels位置)
pctdistance 百分数位置
radius=1.0 饼图半径
counterclock 是否逆时针
frame = 1 是否绘制x-y坐标轴(外框)
center = (1.8,1.8) 设置饼图中心位置,与frame一起使用
wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'} 设置切片边缘属性 线宽 颜色
textprops = {'fontsize':12, 'color':'r'} 设置标签和百分数字体大小/颜色