0
下面的代碼產生與plt.show()
正確的情節,但保存到PDF或PNG圖像時失敗。matplotlib顯示工作,而savefig失敗unicode
我在類似的問題中嘗試了各種建議(請參閱註釋行),但它們都不適用於這種情況。 Png文件將unicode字符顯示爲框,而pdf只是忽略它們。
##-*- coding: utf-8 -*-
#from matplotlib import rc
#rc('font', **font)
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
#rc('font',**{'family':'serif','serif':['Palatino']})
#rc('text', usetex=True)
import matplotlib.pyplot as plt
plt.figure()
plt.plot(range(10))
plt.xlabel(u"\u2736")
plt.ylabel(u'\u03c4')
plt.savefig('unicode.pdf')
plt.savefig('unicode.png')
#plt.show()
感謝您的建議。 Mac上不存在'DejaVu Sans'。我試圖安裝它,但以某種方式失敗。但將字體更改爲Calibri適用於\ tau符號。正如你所說,這絕對是一個字體問題。也許你可以添加其他字體選項到你的答案和獲取字體信息的方式,例如'import matplotlib.font_manager as fm' 'fm.findSystemFonts(fontpaths = None,fontext ='ttf')'set([ f.font.fontManager.ttflist中f的名稱))' – Armut
啊,對不起,我沒有檢查Mac。發現一些支持unicode的字體的資源,所以我會更新答案 – cnosam