2010-12-07 7 views
2

J'essaye d'avoir la légende ajouter une entrée pour chaque article qui est tracée dans la boucle. Donc, il peut y avoir 6 fois qu'un 'vgs' est tracé, et pour chacun, je veux ajouter une entrée pour le nom 'vgs' et la couleur qui a été tracée pour cette instance spécifique de 'vgs'. Mon code semble actuellement créer une légende pour la dernière instance.Matplotlib Legend dans une boucle?

for n in range(len(eventBreakL)): 
    if n < len(eventBreakL)-1: 
     eventL = c_eventConditionL[eventBreakL[n]:eventBreakL[n+1]-1] 
     tL,isubL,vgsL,vdsL = [],[],[],[] 
     for m in eventL: 
      tL.append(m[1]) 
      isubL.append(m[-1]) 
      vdsL.append(m[2]) 
      vgsL.append(m[3]) 
     c_isub_plot.plot(tL,isubL,'o') 
     vgs=vgvd_plot.plot(tL,vgsL,'o') 
     vds=vgvd_plot.plot(tL,vdsL,'o') 
vgvd_plot.legend((vds, vgs), ('vds', 'vgs'), loc='best') 

Y at-il un moyen d'obtenir la légende pour ajouter chaque nouvelle instance qui est tracée?

Répondre

0
i=0 
for n in range(len(eventBreakL)): 
    if n < len(eventBreakL)-1: 
     i+=1 
     eventL = c_eventConditionL[eventBreakL[n]:eventBreakL[n+1]-1] 
     tL,isubL,vgsL,vdsL = [],[],[],[] 
     for m in eventL: 
      tL.append(m[1]) 
      isubL.append(m[-1]) 
      vdsL.append(m[2]) 
      vgsL.append(m[3]) 
     c_isub_plot.plot(tL,isubL,label=str(i)) 
     c_isub_plot.legend() 
     vgvd_plot.plot(tL,vgsL,label=str(i)) 
     vgvd_plot.plot(tL,vdsL,label=str(i)) 
     vgvd_plot.legend()