以饼状图中插入图例为例来调整图例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():圆外部文本