2015-10-08 3 views
1

Я нарисовал многострочный сюжет на одном холсте, используя разные стили линий. Но не уверен, как сделать legend.
Линия я использую для сюжета, как:Получение пользовательской легенды на холсте на matplotlib

ax.plot(x_ra,y_ra,'g^-', x_rb,y_rb,'b-', x_rc,y_rc,'y^--', x_rd,y_rd,'^-', x_re,y_re,'b^-.', x_rf,y_rf,'--') 

Теперь я могу использовать некоторые идеи о том, как я могу получить коробку легенды как:
g^- - А
b- - B
y^-- - D и т.п.
спасибо.

ответ

1

Вы можете назначить метки во время вызова legend, если вы также назовете объекты Line2D, которые возвращаются plot.

Вот простой MWE:

import matplotlib.pyplot as plt 
import numpy as np 

x_ra,y_ra = np.arange(0,10,1),np.arange(0,10,1) 
x_rb,y_rb = np.arange(0,10,1),np.arange(1,11,1) 
x_rc,y_rc = np.arange(0,10,1),np.arange(2,12,1) 
x_rd,y_rd = np.arange(0,10,1),np.arange(3,13,1) 
x_re,y_re = np.arange(0,10,1),np.arange(4,14,1) 
x_rf,y_rf = np.arange(0,10,1),np.arange(5,15,1) 

fig,ax = plt.subplots(1) 
mylines = ax.plot(
      x_ra,y_ra,'g^-', 
      x_rb,y_rb,'b-', 
      x_rc,y_rc,'y^--', 
      x_rd,y_rd,'^-', 
      x_re,y_re,'b^-.', 
      x_rf,y_rf,'--' 
      ) 

ax.legend(mylines,['A','B','C','D','E','F'],loc=0) 
plt.show() 

enter image description here

+0

спасибо @tom – diffracteD

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