2014-10-27 47 views
2

是不確定的,我知道如何保存情節當顯示未定義:產生與UTF-8標籤matplotlib一個JPG時,顯示在Python

Generating a PNG with matplotlib when DISPLAY is undefined

但是,當我做到這一點與UTF-圖中有8個字符,文件中的字符被正方形替換。下面是我的代碼示例:

# -*- coding: utf-8 -*- 
import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pylab as plt 

plt.plot(range(10)) 

plt.xlabel(u'وَبَوِّئْنا') 

plt.savefig('test.jpg',format='jpg') 

如果「AGG的」行註釋掉,被定義顯示當輸出文件看起來很好。我在Mac和CentOS上都遇到過這種情況。有人可以告訴我如何在DISPLAY未定義時使用正確顯示的UTF字符創建jpg嗎?

預先感謝您!

+0

你確定你正在運行代碼的系統有正確的字體嗎? – tacaswell 2014-10-27 21:19:26

+0

是的。當我在沒有'Agg'行的自己的計算機上運行它時,該文件看起來很完美。但是當我包含'Agg'行時,所有的字母都是正方形。 – user3433489 2014-10-27 21:51:41

+0

隨着字體的變化,有趣的事情正在進行。你使用什麼交互式後端? – tacaswell 2014-10-27 21:52:40

回答

2

我想你只需要指定一個可用的字體:

# -*- coding: utf-8 -*- 

import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pylab as plt 

plt.plot(range(10)) 
# you might need to change this to be a font that you know works for your gylphs 
# that you have installed 
plt.xlabel(u'وَبَوِّئْنا', name='Arial') 

plt.savefig('test.jpg',format='jpg') 

enter image description here

可以修改font.seriffont.sans-serif領域是rcparam更改默認字體搜索的順序把具有字體首先是字形。

+0

非常感謝! – user3433489 2014-10-28 14:34:37