2013-06-25 34 views
5

Tôi có một số trong tập lệnh python mà tôi muốn sử dụng như một phần của tiêu đề của một ô trong matplotlib. Có một chức năng chuyển đổi một phao sang một chuỗi TeX được định dạng không?Làm thế nào tôi có thể định dạng một phao bằng cách sử dụng định dạng LaTeX của matplotlib?

Về cơ bản,

str(myFloat) 

lợi nhuận

3.5e+20 

nhưng tôi muốn

$3.5 \times 10^{20}$ 

hoặc ít nhất là cho matplotlib để định dạng phao như chuỗi thứ hai sẽ được định dạng. Tôi cũng bị mắc kẹt bằng cách sử dụng python 2.4, vì vậy mã chạy trong các phiên bản cũ đặc biệt được đánh giá cao.

Trả lời

4

Bạn có thể làm một cái gì đó như:

ax.set_title("${0} \\times 10^{{{1}}}$".format('3.5','+20')) 

theo phong cách cũ:

ax.set_title("$%s \\times 10^{%s}$" % ('3.5','+20')) 
+0

Bạn có bất kỳ lựa chọn thay thế cho phiên bản cũ của python? Tôi đang mắc kẹt bằng cách sử dụng 2.4, nhưng string.format() là mới trong 2.6. – Dan

+0

ok ... Tôi đã thêm nó! Đôi back-slashes rất quan trọng để giải thích '\ times' một cách chính xác trong matplotlib ... –

8

Với định dạng stype cũ:

print r'$%s \times 10^{%s}$' % tuple('3.5e+20'.split('e+')) 

với định dạng mới:

print r'${} \times 10^{{{}}}$'.format(*'3.5e+20'.split('e+'))