2012-06-09 67 views

回答

70

這個問題實際上可能有幾個不同的原因:(!任何繪製完成之前)

默認字體不包含這些字形

您可以使用以下更改默認字體

matplotlib.rc('font', family='Arial') 

在matplotlib你必須TE組家族的某些版本:

matplotlib.rc('font', **{'sans-serif' : 'Arial', 
          'family' : 'sans-serif'}) 

(請注意,由於sans-serif包含**{}語法內連字符,它實際上是必要的。)

第一個命令改變sans-serif字體家族只包含一種字體(在我的情況下,它是Arial)時,第二個將默認字體系列設置爲sans-serif

其他選項包括在內in the documentation

你不當創建/中國率先字符串對象到Matplotlib

即使字體包含正確字型,如果你忘了使用u創建Unicode常數,Matplotlib都會有這樣的行爲:

plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]") 

所以你需要添加u

plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]") 

另一個原因是,你忘了在UTF-8魔評論文件的頂部(我讀這might be the source of the problem):

# -*- coding: utf-8 -*- 
+14

按照[文檔](http://matplotlib.org/api/artist_api .html#matplotlib.text.Text.set_family),您可以直接傳遞字體名稱而不是家族。這適用於我:'matplotlib.rc('font',family ='DejaVu Sans')' – Lekensteyn

+2

這是最好的語法!我會離開舊的,以防其某種古代matplotlib版本需要它。 –