2017-01-10 17 views
0

中央のサブプロットの場所に伝説をつけたい(削除する)。サブプロットの場所に凡例を置く

import matplotlib.pylab as plt 
import numpy as np 

f, ax = plt.subplots(3,3) 
x = np.linspace(0, 2. * np.pi, 1000) 
y = np.sin(x) 

for axis in ax.ravel(): 
    axis.plot(x, y) 
    legend = axis.legend(loc='center') 

plt.show() 

私は中央のプロットを非表示にする方法がわからない: 私はこのコードを書きました。なぜ伝説が現れないのですか?

example plot

このリンクはあなたのコードにはいくつかの問題がありますhttp://matplotlib.org/1.3.0/examples/pylab_examples/legend_demo.html

答えて

2

助けにはなりませんでした。 forループでは、各軸に凡例をプロットしようとしています(loc="center"は図形ではなく軸を参照しています)。ただし、凡例にプロットラベルを表示していません。

ループ内で中心軸を選択し、この軸の凡例のみを表示する必要があります。このループの繰り返しは、そこに線を入れたくない場合は、plotを呼び出す必要がありません。

enter image description here

import matplotlib.pylab as plt 
import numpy as np 

f, ax = plt.subplots(3,3) 
x = np.linspace(0, 2. * np.pi, 1000) 
y = np.sin(x) 

handles, labels = (0, 0) 

for i, axis in enumerate(ax.ravel()): 

    if i == 4: 
     axis.set_axis_off() 
     legend = axis.legend(handles, labels, loc='center') 
    else: 
     axis.plot(x, y, label="sin(x)") 

    if i == 3: 
     handles, labels = axis.get_legend_handles_labels() 

plt.show() 

これは私に次のイメージを与える:私は次のコードで行っているようにあなたは、条件文のセットでこれを行うことができます

関連する問題