2014-10-22 19 views
7

Matplotlib legend'imin başına eklenmiş bir "Line2D" dizilim var. Nasıl kurtulur?Matplotlib lejantında ek satır "Line2D" nasıl kaldırılır

import numpy as np 
import matplotlib.pylab as plt 

x=np.linspace(0,1,20) 
y=np.sin(2*x) 
z=np.cos(2*x) 

p1, = plt.plot(x,y, label='sin(x)') 
p2, = plt.plot(x,z, label='cos(x)') 
plt.legend([p1, p2]) 
plt.show() 

ben efsanesinde ekstra dize "Line2D" kurtulmak istediğiniz bir rakam olsun şu şekildedir: Bu sorunu yeniden üretir basit bir piton yazısıdır. Resim yayınlamak için yeterli itibarım yok. Önemli olan anakconda python kullanıyordum. Yardımlarınız için teşekkürler!

cevap

17

Yalnızca bir listeyi legend geçirirseniz, göstermek istediğiniz etiketler değil, göstermek istediğiniz etiketler olmalıdır. Bu satır nesnelerini Line2D(...) veren dizelere dönüştürüyor.

Satırları oluşturduğunuzda etiketler verdiğinize göre, legend'a bir şey iletmeniz gerekmez. Sadece plt.legend(), sağladığınız etiketleri otomatik olarak kullanacaktır.

+0

Oy kullanmak için 15 kişilik bir destek istiyorum. Ne kadar üzücü! :(birisi benim için yapabilir misin? –

+0

@CorruptedStack: Yine de oylama düğmelerinin yanındaki onay işaretini tıklayarak cevabı kabul edebilirsiniz. (Bu ayrıca kendiniz için rep kazanacaktır.) – BrenBarn

+0

komik 6 dakika beklemek zorundayım! –

2

plt.legend(handles=[p1, p2])'u kullanabilirsiniz.

İlgili konular