在matplotlib上添加了多个图例

时间:2015-11-07 21:14:11

标签: python 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

正如您所看到的,图例正在被复制。

1 个答案:

答案 0 :(得分:2)

我认为Matplotlib默认情况下会在图例中绘制两个点。您应该可以通过调用pl.legend(loc='upper left', numpoints=1)覆盖此内容。

matplotlib Legend Markers Only Once

的答案中有更多详细信息