Динамически добавлять легенды в сюжеты Matplotlib в Python

У меня есть набор графиков в 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 ответ

Решение

Я не могу воспроизвести вашу проблему. С некоторыми изменениями в вашем сценарии то, что вы ожидаете, работает для меня.

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'
Другие вопросы по тегам