2012-05-11 20 views
7

Sadece bir satırlık bir figüre yazdırmaya çalışıyorum, ama sadece ilk harfi aldım. Ben komplo yapmak için aşağıdaki komut dosyası vardır:Matplotlib: figlegend sadece ilk harfi basıyor

from pylab import * 
k = plot((0, 1),(1, 1)) 
figlegend((k),('Limit'),loc='lower center') 
savefig('test.pdf') 

çıktı: Ben yanlış yapıyorum output

? (Ya da bu bir hata mı?)

+2

'('Limit')' pythonda bir tuple olarak kullanılmaz, '('Limit',)' dır. Benim tahminim, ['Limit'] 'sadece iyi çalışması gerekir. – Hooked

cevap

15

Matplotlib'de bir hata mı yoksa kasıtlı mı (bir sebepten dolayı) olduğuna karar veremedim, ancak tam bir gösterge etiketi elde etmek için, sondaki bir virgül bırakmak zorundasınız. etiket listenizi:

figlegend((k),('Limit',),loc='lower center') 

değişiklik satır ve kodunuz:

full legend label

:

from pylab import * 
k = plot((0, 1),(1, 1)) 
figlegend((k),('Limit',),loc='lower center') 
savefig('test.pdf') 

rakam üreten

+3

Bu bir Python özelliğidir: tek elemanlı bir liste belirtmek için, bu sözdizimine ihtiyaç duyarsınız, bunu parens'teki bazı skaler değerlerden ayırt etmek için. http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences –

+0

Bu, daha önce rastladığım Python'un tuhaf bir tuhafı. Çok minnettar buldun bunu. – GLaDER