matplotlib-图例在单独的子项中

2024-04-26 17:38:29 发布

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

我正在绘制一个饼图数组,每个饼图对相同的两种数据类型使用相同的两种颜色。

plt.figure(num=None, figsize=(6, 8))
for i in range(len(data_1)):
    plt.subplot(sp_rows, sp_cols, i+1)
    fracs = [data_1[i], data_2[i]]
    plt.pie(fracs, autopct='%1.1f%%')

pp.savefig()

显然,为这些图表中的每一个绘制一个传说是没有意义的,因为它们都是一样的。那么,我有没有办法在最后将一个图例绘制成一个单独的子图形呢?


Tags: innonefordata颜色绘制rangeplt
1条回答
网友
1楼 · 发布于 2024-04-26 17:38:29

只能调用legend()一次:

import numpy as np
import pylab as pl

for i in xrange(1, 5):
    pl.subplot(220+i)
    pl.pie([i,2], labels=["a","b"], autopct='%1.1f%%')

l = pl.legend(title="sample")
pl.show()

enter image description here

或者,如果您希望图例位于新轴中,只需创建一个虚拟饼图,并为其创建图例,然后隐藏虚拟饼图:

import numpy as np
import pylab as pl

for i in xrange(1, 5):
    pl.subplot(220+i)
    pl.pie([i,2], labels=["a","b"], autopct='%1.1f%%')

fig = pl.gcf()
axe = fig.add_axes([0.4,0.4,0.2,0.2])

pie = pl.pie([1,1], labels=["a","b"])
l = pl.legend(title="sample", loc="center")
for group in pie:
    for x in group:
        x.set_visible(False)

pl.show()

enter image description here

相关问题 更多 >