11

同じ 2 種類のデータに同じ 2 つの色を使用して、円グラフの配列をプロットしています。

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()

これらのチャートはすべて同じであるため、これらのチャートのすべてに凡例をプロットすることは明らかに意味がありません。最後に、単一の凡例を別のサブフィギュアにプロットする方法はありますか?

4

1 に答える 1

16

legend() は 1 回だけ呼び出すことができます。

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()

ここに画像の説明を入力

または、新しい軸に凡例が必要な場合は、ダミーの円を作成し、その凡例を作成してから、ダミーの円を非表示にします。

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()

ここに画像の説明を入力

于 2012-06-22T08:54:26.570 に答える