2010-01-26 64 views
3

在TeX的希臘符號的符號字體來標註我用希臘字母的數字在Python的matplotlib包,我用的是以下幾點:使用通過matplotlib

import matplotlib 
matplotlib.use('PDF') 
import matplotlib.pyplot as plt 
from matplotlib import rc 
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) 
plt.rcParams['ps.useafm'] = True 
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) 
plt.rcParams['pdf.fonttype'] = 42 
# plot figure 
# ... 
# annotate figure 
plt.xlabel(r'$\mu$ = 50') 
plt.ylabel(r'$\sigma$ = 1.5') 

這使得等號,一切向右它的Helvetica字體,正如預期的那樣,並且希臘字母默認爲通常的TeX字體(我相信它是Times New Roman字體)。

我怎樣才能使它成爲希臘字母所使用的字體是「符號「字體呢?對於我來說,不要讓它出現在TeX的默認Times字體中。

感謝您的幫助。

+1

通常的TeX字體不是Times New Roman字體,它是Computer Modern。只是在說'。 – Thomas 2010-01-26 16:46:05

+0

你想要哪種希臘字體?您的Helvetica字體中的希臘字母,希臘字體或Unicode中的希臘字符? 這可能有所幫助:http://stason.org/TULARC/travel/greece/42-How-do-I-write-greek-with-TeX-LaTeX.html – vy32 2010-01-26 16:50:02

回答

9

有趣的你應該問這個;不久之前,我一直在努力解決類似的問題。考慮到TeX中字體處理的複雜程度,我完全避開了TeX。

但是,任何像樣的Helvetica都有內置的希臘字母,所以您不需要使用符號字體。只是把一些Unicode代碼點到你的字符串,像這樣:

plt.xlabel(u'\u03bc = 50') 
plt.ylabel(u'\u03c3 = 1.5') 

對於發現的代碼點,這Unicode codepoint lookup/search tool真是太方便了。

我不確定matplotlib是否以及如何處理Unicode字符串。如果上述失敗,則使用matplotlib預期的編碼進行編碼。 (如果你真的堅持使用Symbol:我不認爲你可以在同一個標​​籤中使用多種字體,那麼你必須添加多個標籤並編寫一些代碼將它們對齊。不漂亮,但它可以做到。)

+0

非常有幫助的答案,但鏈接已死。 .. – Owen 2017-01-16 10:50:39

+1

更新,謝謝:) – Thomas 2017-01-16 14:21:29