动态添加图例到matplotlib图表

7
我有一组用Python生成的图表,想要分别为每个图表添加图例。我在for循环中生成这些图表,并希望动态地添加图例。
但是我只能看到最后一个图例,我希望所有9个图例都能显示出来。
for q in range(1,10):
      matplotlib.pylab.plot(s_A_approx, label = q)
matplotlib.pylab.legend(loc = 'upper left')
matplotlib.pylab.show()

1
对我来说,你的问题不太清楚。以上的代码没有实现你想要做的事情吗? - drs
我无法获得我需要的9组图例,只能获取最后一组。我甚至添加了以下语句:matplotlib.pylab.hold(True) - computationally_curious
s_A_approx的形状是什么? - drs
我无法重现你的问题。我不得不将label=q调整为label=str(q),但之后,图表和图例按预期生成。也许你可以提供更多的脚本,比如s_A_approx来自哪里,或者一个 s_A_approx看起来像什么的示例? - drs
你是否可以把9个图例全部显示出来,还是仅最后一个?我仍然只能够得到最后一个。 - computationally_curious
显示剩余4条评论
1个回答

10

我无法重现你的问题。通过对你的脚本进行一些调整,我所期望的结果对我来说是有效的。

import matplotlib.pylab
import numpy as np

for q in range(1,10):
    # create a random, 100 length array
    s_A_approx = np.random.randint(0, 100, 100)
    # note I had to make q a string to avoid an AttributeError when 
    # initializing the legend
    matplotlib.pylab.plot(s_A_approx, marker='.', linestyle='None', label=str(q))

matplotlib.pylab.legend(loc='upper left')
matplotlib.pylab.show()

生成的图形


如果有帮助的话,这是我的matplotlib版本:

>>> import matplotlib
>>> matplotlib.__version__
'1.0.1'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接