2012-11-12 26 views
24

Tôi cần nhập các chữ cái Hy Lạp và biểu tượng Angstrom vào nhãn của các trục trong ô. Ví dụ:Nhập các chữ cái Hy Lạp, v.v. trong các ô của Python

fig.gca().set_xlabel("$wavelength\, (Angstrom)$") 
fig.gca().set_ylabel("$lambda$") 

ngoại trừ việc tôi thực sự muốn "Angstrom" và "lambda" thay thế bằng ký hiệu thực. Làm thế nào tôi nên làm điều này? Cảm ơn!

Trả lời

16

Không chỉ bạn có thể thêm các chuỗi nguyên để Matplotlib nhưng bạn cũng có thể chỉ định phông chữ trong matplotlibrc hoặc địa phương với:

from matplotlib import rc 

rc('font', **{'family':'serif','serif':['Palatino']}) 
rc('text', usetex=True) 

Điều này sẽ thay đổi font chữ serif mủ của mình. Bạn cũng có thể chỉ định Helvetica sans-serif như vậy

rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) 

tùy chọn khác là cursivemonospace với tên phông chữ tương ứng của họ. nhãn của bạn sau đó sẽ là

fig.gca().set_xlabel(r'wavelength $5000 \AA$') 

Nếu font không cung cấp một biểu tượng Angstrom bạn có thể thử sử dụng \mathring{A}

+0

Angstrom là không thỏa đáng với tùy chọn này, bởi vì nó xuất hiện nghiêng. $ \ Text {\ AA} $ hoạt động trong latex dường như hoạt động ở đây. Cũng nên có một tùy chọn bảo quản phông chữ được sử dụng cho các ký tự này. Làm thế nào để làm điều đó? – leandro

+0

Bạn có thể sử dụng chữ Å thay vì ký hiệu dedicatedngström chuyên dụng (Å), vì rất ít phông chữ chứa ký tự thứ hai, và hầu hết chúng đều sử dụng các ký tự giống hệt nhau cho cả hai. https://en.wikipedia.org/wiki/%C3%85#Symbol_for_.C3.A5ngstr.C3.B6m –

32

Bạn cần phải thực hiện các chuỗi raw và sử dụng latex:

fig.gca().set_ylabel(r'$\lambda$') 

Tính đến matplotlib 2.0 phông chữ mặc định supports most western alphabets và đơn giản có thể làm

ax.set_xlabel('λ') 

với unicode.

+0

Điều này có hiệu quả với Angstrom không? – mcglashan

+0

@ user1803782 bạn phải tra cứu biểu tượng LaTeX chính xác – tacaswell

+0

Ồ điều này đã hiệu quả! Cảm ơn. – mcglashan

6

Nếu bạn muốn tho có một chuỗi bình thường trước mặt của thư Tiếng Hy Lạp chắc chắn rằng bạn có theo thứ tự đúng:

plt.ylabel(r'Microstrain [$\mu \epsilon$]') 
3

Python 3.x: chữ Hy Lạp nhỏ được mã hoá 945-969 vậy, alpha là chr(945), omega là chr(969) vì vậy chỉ cần gõ

print(chr(945)) 

danh sách các chữ Hy Lạp nhỏ trong một danh sách:

greek_letterz=[chr(code) for code in range(945,970)] 

print(greek_letterz) 

Và bây giờ, alpha là greek_letterz[0], beta là greek_letterz[1], aso

2

Tại sao không chỉ cần sử dụng theo nghĩa đen nhân vật?

fig.gca().set_xlabel("wavelength, (Å)") 
fig.gca().set_ylabel("λ") 

Bạn có thể phải thêm video này vào tập tin nếu bạn đang sử dụng python 2:

# -*- coding: utf-8 -*- 
from __future__ import unicode literals # or use u"unicode strings" 

Nó có thể được dễ dàng hơn để xác định hằng số cho các ký tự mà không phải là dễ dàng để gõ trên bàn phím.

ANGSTROM, LAMDBA = "Åλ" 

Sau đó, bạn có thể sử dụng lại chúng ở nơi khác.

fig.gca().set_xlabel("wavelength, (%s)" % ANGSTROM) 
fig.gca().set_ylabel(LAMBDA) 
Các vấn đề liên quan