只用一次matplotlib图例标记

我经常在matplotlib图上绘制一个点:

x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()

然而,这会导致图例在图例中放入一个星号两次,这样它看起来就像:

* * Global Optimum

当我真的想让它看起来像:

 *  Global Optimum

我怎么做呢?

61261 次浏览

这应该可以工作:

legend(numpoints=1)

顺便说一句,如果你加上台词

legend.numpoints     : 1      # the number of points in the legend line

到您的matplotlibrc文件,那么这将是新的默认值。

[参见散点,取决于你的情节。]

API: API文档链接

我喜欢在每个python脚本中动态更改matplotlib rc参数。为了实现这个目标,我只需在python文件的开头使用类似的东西。

from pylab import *
rcParams['legend.numpoints'] = 1

这将适用于从我的python文件生成的所有绘图。

编辑:对于那些不喜欢导入pylab的人,长的答案是

import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1