2016-04-14 5 views
5

В моем коде я уже выполненКак установить метку для уже построенной линии в matplotlib?

ax.plot(x, y, 'b.-', ...) 

и должен быть в состоянии установить метку для соответствующей строки после факта, чтобы иметь тот же эффект, как если бы я

ax.plot(x, y, 'b.-', label='lbl', ...) 

Есть ли способ сделать это в Matplotlib?

ответ

6

Если вы хватаете line2D объект при его создании, вы можете установить метку с помощью line.set_label():

line, = ax.plot(x, y, 'b.-', ...) 
line.set_label('line 1') 

Если вы этого не сделаете, вы можете найти line2D из Axes:

ax.plot(x, y, 'b.-', ...) 
ax.lines[-1].set_label('line 1') 

Примечание. ax.lines[-1] будет иметь доступ к последней созданной строке, поэтому, если вы делаете несколько строк, вам нужно быть осторожным, какую строку вы устанавливаете на этикетке при использовании этого метода.


Минимальный пример:

import matplotlib.pyplot as plt 
fig,ax = plt.subplots(1) 
l,=ax.plot(range(5)) 
l.set_label('line 1') 
ax.legend() 
plt.show() 

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^