时间:2022-07-25 10:54:22 | 栏目:Python代码 | 点击:次
使用python实现论文里面的饼状图:
原图:
python代码实现:
# # 饼状图 # plot.figure(figsize=(8,8)) labels = [u'Canteen', u'Supermarket', u'Dorm', u'Others'] sizes = [73, 21, 4, 2] colors = ['red', 'yellow', 'blue', 'green'] explode = (0.05, 0, 0, 0) patches, l_text, p_text = plot.pie(sizes, explode=explode, labels=labels, colors=colors, labeldistance=1.1, autopct='%2.0f%%', shadow=False, startangle=90, pctdistance=0.6) # labeldistance,文本的位置离远点有多远,1.1指1.1倍半径的位置 # autopct,圆里面的文本格式,%3.1f%%表示小数有三位,整数有一位的浮点数 # shadow,饼是否有阴影 # startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看 # pctdistance,百分比的text离圆心的距离 # patches, l_texts, p_texts,为了得到饼图的返回值,p_texts饼图内部文本的,l_texts饼图外label的文本 # 改变文本的大小 # 方法是把每一个text遍历。调用set_size方法设置它的属性 for t in l_text: t.set_size = 30 for t in p_text: t.set_size = 20 # 设置x,y轴刻度一致,这样饼图才能是圆的 plot.axis('equal') plot.legend(loc='upper left', bbox_to_anchor=(-0.1, 1)) # loc: 表示legend的位置,包括'upper right','upper left','lower right','lower left'等 # bbox_to_anchor: 表示legend距离图形之间的距离,当出现图形与legend重叠时,可使用bbox_to_anchor进行调整legend的位置 # 由两个参数决定,第一个参数为legend距离左边的距离,第二个参数为距离下面的距离 plot.grid() plot.show()
实现: