Matplotlibで作成された凡例を使用した簡単なプロットでは、次のようになります。誰もがなぜそしてどのように問題を回避するのか知っていますか?私のコマンドは:
pl.plot(x1,x2,'g^', label='regional')
pl.plot(y1,y2,'bo', label='local')
pl.legend( loc='upper left' )
ありがとうございました
凡例に表示されるマーカーの数は、numpoints
キーワードを使用して変更できます。
import matplotlib.pyplot as plt
import numpy as np
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend( loc='upper left', numpoints = 1 )
plt.show()
マーカーが(デフォルトで)2度表示される理由は、matplotlibがマーカー間のラインスタイルコネクターを表示しようとしているためです。コネクタがないと少し変に見えます。
プロットが実線と破線の場合、
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
凡例は次のようになります。
これで、凡例のマーカー間の(およびグラフ上の)線種の効果を確認できます。
凡例ハンドルがまったく必要ない場合は、次を使用できます
plt.legend(..., handlelength=0)
例えば、
import numpy as np
import matplotlib.pyplot as plt
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='best', numpoints=1, handlelength=0)
plt.show()
あなたは使うことができます
plt.legend(loc='best', numpoints=1, handlelength=0,
markerscale=0, handletextpad=0)
凡例マーカーも削除します。