我正在使用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()
为了说明问题,代码生成以下图像:
正如您所看到的,图例正在被复制。
答案 0 :(得分:2)
我认为Matplotlib默认情况下会在图例中绘制两个点。您应该可以通过调用pl.legend(loc='upper left', numpoints=1)
覆盖此内容。