来自matplotlib mathtext的奇怪输出

时间:2013-02-05 19:48:02

标签: python matplotlib fonts fedora

我尝试使用mathtext来获得一个特别渲染的数字标题,但它失败了。而不是我的测试标题,它只是打印神秘的人物。我做错了什么?

  • 操作系统:Fedora版本18(球形牛)
  • Python和matplotlib是从官方存储库通过yum
  • 安装的

这是(完整)代码:

import sys
print sys.version             # prints:
                              # 2.7.3 (default, Aug  9 2012, 17:23:57)
                              # [GCC 4.7.1 20120720 (Red Hat 4.7.1-5)]
import matplotlib
print matplotlib.__version__  # prints:
                              # 1.2.0

import matplotlib.pyplot as plt
plt.plot([1,5])
plt.title(r"$1.2345$")
plt.show()

这是输出图像: strange title rendering

3 个答案:

答案 0 :(得分:3)

如果您使用的是RedHat,CentOS或其他一些Fedora衍生产品,您可能会看到此处描述的错误:https://bugzilla.redhat.com/show_bug.cgi?id=562421

尝试安装“stix”字体包(在CentOS / RedHat上这是“stix-fonts”)。删除你的〜/ .matplotlib / fontlist.cache文件。接下来,重新运行系统的font-cache脚本,可能是“fc-cache -f -s -v”。

现在,更改matplotlibrc设置(通过〜。/ matplotlib / matplotlibrc文件或与脚本相同的目录中的matplotlibrc文件),如下所示:

mathtext.fontset : stix 
mathtext.fallback_to_cm : True
mathtext.default : it 

我很想知道这是否适合你。

答案 1 :(得分:1)

显然这是与字体有关的事情。找到一个旧bug-report来解决此问题。

one of the comments中的建议是安装包lyx-fonts。这解决了我的问题。


另一个解决方法proposed here是像这样配置mathtext渲染(在脚本的顶部):

plt.rcParams['mathtext.fontset'] = "stix"

答案 2 :(得分:0)

我怀疑编码问题。尝试运行你的程序:

LANG=C python myprogram.py