2012-06-21 14 views
9

私は同じ2つのタイプのデータに対して同じ2色を使用する円グラフの配列をプロットしています。matplotlib - 別個のサブプロット内の凡例

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

明らかに、これらのチャートのすべてについて凡例をプロットするのは意味がありません。それで、最後に一つの凡例を別のサブ図にプロットする方法はありますか?

+0

これが見えます次の投稿の複製: http://stackoverflow.com/questions/4700614/how-to-put-the-legend-out-of-the-plot – stanri

+0

私はそうは思わない、他の投稿ポスターは明示的に彼がサブプロットについて話していないと言っています。 – Nils

+0

うん、ちょうど今気づいた。 – stanri

答えて

16

あなたは一度だけ)の伝説を(呼び出すことができます。

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