2016-04-26 51 views
0

データポイントと凡例の重複を避けるために、matplotlibの凡例を自動的に操作する方法はありますか?私は多くのデータポイントとy軸の範囲を固定していますが、matplotlibがデータポイント上にある場合は凡例を左または下に移動するように指示できます。おかげmatplotlibプロットで凡例の下にあるデータを避けるには?

import numpy as np 
import matplotlib.pyplot as plt 

x = np.arange(1, 100) 
y = -1/x 

plt.plot(x,y, label='x and y', linewidth=30) 
plt.legend() 
plt.show() 

答えて

0

あなたは手動でそれをしたい位置に凡例を配置することができ、ドキュメントがhere.を見つけることができます。得られた画像を以下に示す

import matplotlib.pyplot as plt 
import numpy as np 

x = np.arange(1, 100) 
y = -1/x 

plt.plot(x,y, label='x and y', linewidth=30) 

#adjust the plot to allow the legend to fit nicely 
plt.subplots_adjust(left=0.1,right = 0.75) 

plt.legend(bbox_to_anchor=(1.01, 0.5), loc=2) # move the legend 
plt.show() 

enter image description here

注以下のコードに示すように、あなたはまた、オーバーラップのチャンスを避けるために、グラフのプロットエリアをそれを移動することができます:プロット領域の外側に伝説を動かす予定がある場合は、上のコードで行ったようにプロットを調整する必要があります。

+0

あなたの答えはわかりますが、私の凡例は長すぎます(データポイントが長すぎます)ので、実際のグラフは非常に狭くなります。 – Curtis

+0

さて、あなたはいくつかの選択肢があると思います。あなたが伝説のテキストを切り捨てることを望まないとすれば、_1)_あなたの凡例のフォントサイズを減らすことができます。 _2)_あらかじめプロットの大まかな形が分かっていれば、それに応じて凡例を配置することができます_3)_ Figureウィンドウのサイズを大きくします。一番良いのは、1と3の混合物でしょうか? – DavidG

関連する問題