4

プロット用の私のスクリプトは、ラベルごとに 2 つの凡例を作成します。legend() を複製しないようにする方法がわかりません。stackoverflow を確認したところ、2 つの方法が見つかりました。しかし、ここではそれらを実装できませんでした。何か案は?

Matplotlib:凡例にエラーバーを表示しない

凡例での matplotlib の繰り返しラベルの停止

symbols = [u'\u2193']
#Plotting our vsini values
for i, symbol in enumerate(symbols):
    for x0,y0 in zip(vsini_slit_cl, vsini_slit):
        plt.text(x0,y0, symbol, fontname='STIXGeneral', size = 10, va='center', ha='center', clip_on=True,color = '#737373')
for i, symbol in enumerate(symbols):
    for x0, y0 in zip(vsini_cl_sl, vsini_sl):
       plt.text(x0, y0, symbol, fontname='STIXGeneral', size = 10, va='center', ha='center', clip_on=True)

# PLOTTING VSINI FROM LITERATURE 
plt.plot((vmag_lit-jmag_lit), vsini_lit, 'o', color = '#a6a6a6', label='Literature')
# PLOTTING SLOW VSINI FROM LITERATURE 
plt.plot(vsini_slit_cl, vsini_slit, 'o', color = '#a6a6a6')
# PLOTTING VSINI FROM OUR WORK
plt.plot(vsini_cl_sl, vsini_sl, 'o', label='This Work' )
plt.errorbar(vsini_color, vsini_chad, yerr=vsini_chad_sig, fmt='bo', capsize=3)
plt.legend()        
plt.savefig('vsini_colors.jpg', dpi=200)

ここに画像の説明を入力

4

1 に答える 1

4

使うだけ

plt.legend(numpoints=1)

デフォルトの動作は 2 点を使用することです。これは、線の凡例エントリを作成するために必要なものです。

参照:凡例のユーザー ガイドplt.legendドキュメントlegendドキュメント

于 2013-06-01T19:32:03.080 に答える