我知道如何在未定义DISPLAY时保存绘图:
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'行已注释掉,则在定义DISPLAY时输出文件看起来很好。在Mac和CentOS上都发生过这种情况。有人可以告诉我如何在未定义DISPLAY时正确显示UTF字符的jpg吗?
提前谢谢!
答案 0 :(得分: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')
您可以修改font.serif
和font.sans-serif
字段是rcparam,以更改默认字体搜索顺序,以便将字体放在首先显示字体。