美文网首页
解决python扇形图中标签重叠

解决python扇形图中标签重叠

作者: 浮生梦凡卿 | 来源:发表于2023-04-26 22:57 被阅读0次

用python画扇形图,常常出现标签重叠部分,搜了下网上找不到有效解决办法,所以我将用最简洁的语言帮你解决问题。

  1. 解决办法:设置explode值,使扇形图的某个扇区脱离整体扇形图。
    假如你遇到这样的问题(数据项多了会更明显)


    image.png

    添加explode后如下,可以在下面代码基础上修改


    image.png

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


image.png

如果真的数据项太多了,那么建议用南丁格尔玫瑰图。

相关文章

网友评论

      本文标题:解决python扇形图中标签重叠

      本文链接:https://www.haomeiwen.com/subject/fhkbjdtx.html