用python画扇形图,常常出现标签重叠部分,搜了下网上找不到有效解决办法,所以我将用最简洁的语言帮你解决问题。
-
解决办法:设置explode值,使扇形图的某个扇区脱离整体扇形图。
假如你遇到这样的问题(数据项多了会更明显)
添加explode后如下,可以在下面代码基础上修改
import numpy as np#引入numpy库
import matplotlib.pyplot as plt#引入matplotlib库的pyplot函数
#添加标题
plt.title("测试",fontproperties='KaiTi',fontsize=30,color="red")#添加图名
#设置正圆显示
plt.axis('equal')
#构造数据
plt.rcParams['font.sans-serif']='SimHei'#中文显示乱码处理,SimHei是黑体
plt.rcParams['axes.unicode_minus']=False #用来正常显示正负号
data=[1,2,1,0.1,0.2,1,2]
#设置每个标签对应的值
labels=list(['改变自己原来的做法','我觉得花时间了解专业信息是不必要的','我觉得花时间了解专业信息是必要的','我想我会幻想','我觉得投入大量精力学习是重要的','我常学以致用','我乐意从事和所学专业有关的工作'])#设置显示标签
#设置突出显示的标签
explode=np.zeros(len(data))
explode[-2]=0.3
explode[-3]=0.15
#设置标签颜色,浅黄,橙,绿,红,紫,青
colors=['wheat','orange','green','red','violet','teal']
#开始绘制
plt.pie(data,#加载绘图数据
#explode=explode,#突出显示的项
labels=labels,#各球队标签
colors=colors,#颜色属性
radius=1,#设置饼图半径
counterclock=False,#设置为顺时针方向开始绘图
labeldistance=1.1,#设置标签位置
autopct='%.2f%%',#设置百分比格式,这里保存两位小数
textprops={'fontsize':14,'color':'black'},#设置文本属性,字体大小为12,颜色为黑
wedgeprops={'linewidth':0.7,'edgecolor':'black'},#设置边框,宽度为0.7,颜色为黑
shadow=True,#添加阴影
startangle=90#设置开始绘图的角度
)
plt.show()
需要哪个扇形出来就把那个对应的explode设置成正数,越大出来的越多。如果不确定哪个是哪个可以改变索引,手动多试几次。
2.改变startangle值
常常是扇形底下或者上边的标签重合,在数据项不多的情况下,通过改变初始角度,把这个区域留给大块扇形就好了。将最后一行设置为
startangle=45
如果真的数据项太多了,那么建议用南丁格尔玫瑰图。