2015-11-07 54 views
-1

我正在使用matplotlib繪製一些帶有一些標籤和圖例的錯誤條。不過,我注意到傳說中的符號增加了一倍。爲了複製這一點,我有以下代碼:在matplotlib上添加了多個傳說

import numpy as np 
import pylab as pl 

# define datasets 
parameters = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7] 
mean_1 = [10.1, 12.1, 13.6, 14.5, 18.8, 11.8, 28.5] 
std_1 = [2.6, 5.7, 4.3, 8.5, 11.8, 5.3, 2.5] 

mean_2 = [10.1, 12.1, 13.6, 14.5, 18.8, 11.8, 28.5] 
std_2 = [2.6, 5.7, 4.3, 8.5, 11.8, 5.3, 2.5] 

mean_3 = [10.1, 12.1, 13.6, 14.5, 18.8, 11.8, 28.5] 
std_3 = [2.6, 5.7, 4.3, 8.5, 11.8, 5.3, 2.5] 

pl.errorbar(np.array(parameters)-0.01, mean_1, yerr=std_1, fmt='bo', label='M1') 
pl.errorbar(parameters, mean_2, yerr=std_2, fmt='go', label='M2') 
pl.errorbar(np.array(parameters)+0.01, mean_3, yerr=std_3, fmt='ro', label='M3') 
pl.legend(loc='upper left') 
pl.show() 

爲了說明問題,代碼生成以下圖片:

enter image description here

正如你所看到的,傳說是得到複製。

回答

2

我認爲Matplotlib默認情況下在圖例中繪製了兩個點。你應該可以通過調用pl.legend(loc='upper left', numpoints=1)來覆蓋它。

答案中有很多更詳細的信息:matplotlib Legend Markers Only Once

+0

這樣做的竅門!謝謝! – Luca