matplotlib中legend图例的位置手动调整

matplotlib中legend图例的位置手动调整

以饼状图中插入图例为例来调整图例legend的位置

绘制一个饼状图

import matplotlib.pyplot as plt
# 设置显示中文为黑体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置显示负号
plt.rcParams['axes.unicode_minus'] = False
label_list = ['0-59分','60-70分','70-80分','80-90分','90-100分']
size = [3,12,15,25,5]
colors = ['#FF9966','#FF6666','#FFCCCC','#99CCCC','#FFCC99']
explode = [0,0,0,0.01,0]

# 绘制饼状图
plt.pie(size,explode=explode,colors=colors,labels=label_list,labeldistance=1.2,shadow=True,startangle=90,pctdistance=1.5)
plt.legend(loc='upper right')
plt.show()

打印结果为:
这个图的图例子右上角,设置在右上角的参数代码为:

plt.legend(loc='upper right')

在这里插入图片描述
除了以上的upper right(右上角)以外还有其他参数可选,分别为:

string Number
upper right(右上角) 1
upper left(左上角) 2
lower right(右下角) 3
lower left(左下角) 4
right(右端) 5
center right(居中右) 6
center left(居中左) 7
lower center(居中下) 8
upper center(居中上) 9
center(居中) 10

但是从图片中依然可以看到不是足够的靠右端,这里我们可以引入第二个参数:bbox_to_anchor

label_list = ['0-59分','60-70分','70-80分','80-90分','90-100分']
size = [3,12,15,25,5]
colors = ['#FF9966','#FF6666','#FFCCCC','#99CCCC','#FFCC99']
explode = [0,0,0,0.01,0]

# 绘制饼状图
plt.pie(size,explode=explode,colors=colors,labels=label_list,labeldistance=1.2,shadow=True,startangle=90,pctdistance=1.5)
plt.legend(bbox_to_anchor=(1.2, 1.12))
plt.show()

看一下这次图例legend的效果:
在这里插入图片描述
而bbox_to_anchor=(1.2, 1.12)中的数字参数可以根据位置自己慢慢稍作调整
上面的其他参数的意义也稍作说明下:
labeldistance:设置标签文本距离圆心的位置
label:设置标签
colors:设置颜色
space:设置间距
autopct:设置圆中文本格式
shadow:设置是否有阴影
startangle:设置起始角度,默认是从0开始逆时针旋转
pctdistance:设置园内文本距离圆心的大小
patches:返回值
l_text():圆内部文本
p_text():圆外部文本

猜你喜欢

转载自blog.csdn.net/weixin_49432344/article/details/115967760