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

sru*_*nni 5 python unicode label matplotlib

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

matplotlib.pyplot.xlabel(u'Sarcomere Length (?m)')
Run Code Online (Sandbox Code Playgroud)

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

轴标签不正确

它适用于重音拉丁字符(如"é").有任何想法吗?

Joe*_*ton 7

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

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

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

一般来说,最好使用matplotlib的mathtext渲染来处理希腊符号之类的东西.例如,做matplotlib.pyplot.xlabel(r'Sarcomere Length ($\mu m$)').