使用Cairo渲染器的Matplotlib Unicode轴标签

时间:2011-03-23 16:56:48

标签: python unicode matplotlib label

我正在尝试使用Matplotlib在轴标签中生成非拉丁字符(“μ”)的图,如下所示:

matplotlib.pyplot.xlabel(u'Sarcomere Length (μm)')

我在Linux上使用Cairo渲染器,我得到一个“盒子”而不是“μ”:

Incorrect Axis Label

它适用于重音拉丁字符(如“é”)。有什么想法吗?

1 个答案:

答案 0 :(得分:7)

这是一个字体问题。无论您设置为matplotlib的默认字体都没有该特定字符。有许多方法可以解决这个问题,但它会依赖于系统。 (这可能就像确保安装了适当的字体包一样简单。)

您可以设置matplotlib将在.matplotlibrc file中使用的字体。如果找不到您尝试使用的确切字体,则可以在.matplotlibrc文件中指定相应.ttf字体文件的完整路径。但通常你不需要这样做。

但是,在上面指定的特定情况下,有一种更简单的方法。

一般来说,最好使用matplotlib's mathtext rendering来表示希腊符号。例如。改为matplotlib.pyplot.xlabel(r'Sarcomere Length ($\mu m$)')