我正在尝试用希腊文写一些文字标签,图标题等,以配合我的情节,但到目前为止无济于事。
我不想打印特定字母(我知道如何使用特殊字符表示法),我宁愿用希腊文写出整个文本(可能使用Unicode和u'text'
?)。
在收到建议之前,我想提一下,由于某种原因,我无法让matplotlib与TeX合作(在Ubuntu 14.10中使用来自anaconda的Ipython笔记本),所以这不是一个真正的选择。
我尝试加载Arial字体并且确实加载成功但是我再次得到方块而不是字符。我用了
import matplotlib.font_manager as fm
prop = fm.FontProperties(fname='/usr/share/fonts/truetype/msttcorefonts/Arial.ttf')
然后显示我使用的字符串u'Αποτελέσματα προσομοίωσης'
。 Arial应该完美呈现希腊语,我在文本编辑器中多次使用它。
答案 0 :(得分:1)
我设法通过执行以下操作来解决问题:
首先,您必须导入必要的库并设置计算机上安装的字体,该字体可以确保呈现希腊语,如Ubuntu字体(以下代码中的Ubuntu Bold)。
import matplotlib.font_manager as fm
fp1 = fm.FontProperties(fname='/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf')
然后您可以将所选字体专门应用于每个标签,标题等,如下所示:
plt.title(u"Τίτλος του γραφήματος",fontproperties=fp1)
如果这似乎不起作用,请尝试在文件开头添加以下行:
# -*- coding: utf-8 -*-
提供样本图以证明代码的正确性:
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import numpy as np
fp1 = fm.FontProperties(fname='/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf')
data = np.random.randn(5000) #generate some random data
plt.plot(data)
plt.title(u"Τίτλος του γραφήματος", fontproperties=fp1)
plt.xlabel(u"Άξονας x", fontproperties=fp1)
plt.ylabel(u"Άξονας y", fontproperties=fp1)
plt.show()
应该给你这样的东西: