2010-04-17 9 views

cevap

21

Sizin örnek tam olarak nasıl yapıldığını, sen \n kullanın. Çok piton Sen iki dünyanın en iyisi olabilir

+6

Python tarafından yorumlanmadıklarından emin olmak için LaTeX komutlarını proaktif olarak kaçmak isteyebilirsiniz: 'xlabel ('$ \\ Sigma $')' –

+4

Bu yanıt doğru değil. * * * Normal bir dizgede lateksin '\' kaçışını * kaçar * veya * merkezleme ile ilgili @EOLs [cevap] (http://stackoverflow.com/a/2666270/1157089) – aaren

+1

'u takip edersiniz: 'ylabel http://matplotlib.org/examples/pylab_examples/multiline.html http://matplotlib.org/examples/pylab_examples/multiline.html – Faber

58

ham dize olarak tedavi etmese r öneki çıkarmak gerekir:

plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math" 
      "\n" # Newline: the backslash is interpreted as usual 
      r"continues here with $\pi$") 
: LaTeX ve yeni satır komutları otomatik "kaçan"

(Üç satır kullanmak yerine dizeleri tek boşluklarla ayırmak başka bir seçenektir).

Aslında, Python birbirini izleyen dize değişmezlerini otomatik olarak birleştirir ve ham dizeleri (r"…") ve karakter enterpolasyonlu dizeleri karıştırabilirsiniz ("\n").

+0

Sadece hızlı bir yorum - bu etiketlemenin kolay bir yolu için mükemmel bir çözümdü ('dikey', 'multialignment =' merkez ') (a), (b) vb. alt plotlar bu etiketin arsa altında olması ve xlabel ile ortalanması gerektiğinde. Bu şekilde plt.tight_layout() ayrıca tüm etiketi görür ve buna göre ayarlar. – SeanM

2

aşağıdaki matplotlib python komut dosyası

ax.text(10, 70, 'shock size \n $n-n_{fd}$') 

yeni hattı yoksa aşağıdaki yeni hat ile metin oluşturur. Metnin

ax.text(10, 70, r'shock size \n $n-n_{fd}$') 
7
plt.bar([1, 2], [4, 5]) 
plt.xlabel("My x label") 
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here") 

önce r dikkat Yalnızca ham dize biçiminde olmayan bir yeni satır dizelerle bitiştirmek.