如何在饼图的侧面添加图例

2024-10-03 23:31:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了以下代码:

labels = [i for i in range(50)]
print(len(labels))

sizes = [28, 63, 1046, 247,511,63,75,154,102,17,115,44,
55,744,13,3,37,1,1837,7,61,1,19,42,17,3,63,21,4,
1,1,1,1,20,427,259,23,38,50,66,14,38,7,4,5,2,6,6,6,18]


#colors
colors = ['#80bcff','#00dbca','#00e56c','#ff9465','#fff400','#ffe4c4',
'#e0eee0','#fff68f','#ffaeb9','#ffa07a',''#48d1cc','#db7093','#bbffff','#ffb5c5','#ffbbff',
'#fa8072','#54ff9f','#fff5ee','#87ceff','#ffe1ff','#ff6347','#eed8ae','#ffff00','#ee82ee',
'#00f5ff','#ee5c42','#d8bfd8','#ee9a49','#5cacee','#9fb6cd','#6ca6cd','#eee5de','#43cd80',
'#cd7054','#436eee','#8b0000','#9b30ff','#ffb5c5','#ffdab9','#90ee90','#db7093']

fig1, ax1 = plt.subplots()
#ax1.pie(sizes, colors = colors, labels=labels, autopct='%1.1f%%', startangle=90)

ax1.pie(sizes,colors = colors,startangle=90)


#draw circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)


# Equal aspect ratio ensures that pie is drawn as a circle
ax1.axis('equal')
plt.tight_layout()

plt.show()

我试图在绘图的右侧添加一个图例,并按照绘图的顺序以相对整洁的方式列出所有50个标签(即图例的长度不会比绘图长太多)

我知道.legend(),但当我添加各种.legend()(例如,当我只添加ax1.legend();类似于here时,没有错误,也没有图例

有人能告诉我如何在这个情节的右边添加一个传奇吗


Tags: 绘图labelsfigpltcolorssizespie图例
1条回答
网友
1楼 · 发布于 2024-10-03 23:31:19

尝试:

labels = [i for i in range(50)]
#print(len(labels))

sizes = [28, 63, 1046, 247,511,63,75,154,102,17,115,44,
55,744,13,3,37,1,1837,7,61,1,19,42,17,3,63,21,4,
1,1,1,1,20,427,259,23,38,50,66,14,38,7,4,5,2,6,6,6,18]


#colors
colors = ['#80bcff','#00dbca','#00e56c','#ff9465','#fff400','#ffe4c4',
'#e0eee0','#fff68f','#ffaeb9','#ffa07a',''#48d1cc','#db7093','#bbffff','#ffb5c5','#ffbbff',
'#fa8072','#54ff9f','#fff5ee','#87ceff','#ffe1ff','#ff6347','#eed8ae','#ffff00','#ee82ee',
'#00f5ff','#ee5c42','#d8bfd8','#ee9a49','#5cacee','#9fb6cd','#6ca6cd','#eee5de','#43cd80',
'#cd7054','#436eee','#8b0000','#9b30ff','#ffb5c5','#ffdab9','#90ee90','#db7093']

fig1, ax1 = plt.subplots(figsize=(7,7))
#ax1.pie(sizes, colors = colors, labels=labels, autopct='%1.1f%%', startangle=90)

ax1.pie(sizes,colors = colors,startangle=90)
plt.legend(ax1.patches, labels, ncol=4, bbox_to_anchor=(1,.7))

#draw circle
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)


# Equal aspect ratio ensures that pie is drawn as a circle
ax1.axis('equal')
plt.tight_layout()

plt.show()

输出:

enter image description here

相关问题 更多 >