График Matplotlib не показывает легенду

#python #matplotlib #plot #label #legend

#python #matplotlib #график #метка #легенда

Вопрос:

Я хочу быстро построить функцию, изменяющую один из ее параметров, с легендой, показывающей значение этого параметра:

 def supergaussian1d(x, x0, Imax, FWHM, n):
    return Imax * np.exp(-4 * np.log(2) * (np.sqrt((x   x0)**2) / FWHM) ** (2*n))

x = np.linspace(0, 15, num=100)
for m in range(2, 9):
    plt.plot(x, supergaussian1d(x, x0=-7, Imax=10, FWHM=5, n=m), label='{}'.format(m))
    plt.ylim((0, 12))
plt.show()
  

Это результат:

введите описание изображения здесь

Почему легенда не отображается?

Кроме того, имеет ли значение, имеет ли plt.show() отступ или нет?

Ответ №1:

Вы пробовали добавлять plt.legend() раньше plt.show() ?

Комментарии:

1. Я только что попробовал это, и это работает. Я глупый… Спасибо!

2. нет проблем! вы также можете указать местоположение легенды внутри plt.legend() , используя параметр loc.