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

标签 python unicode matplotlib label

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

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

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

Incorrect Axis Label

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

最佳答案

这是一个字体问题。无论您将什么字体设置为 matplotlib 的默认字体,都没有该特定字符。有很多方法可以解决这个问题,但这将完全取决于系统。 (这可能就像确保安装了合适的字体包一样简单。)

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

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

一般来说,最好使用 matplotlib's mathtext rendering对于希腊符号之类的东西。例如。改为执行 matplotlib.pyplot.xlabel(r'Sarcomere Length ($\mu m$)')

关于python - 使用 Cairo 渲染器的 Matplotlib Unicode 轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408862/

相关文章:

python - Django、字符串编码、UTF-8 和问题 - AttributeError : 'Cursor' object has no attribute '_last_executed'

c++ - 在 C++ 中读取和输出可能的 unicode torrent 内容?

python - 如何删除条形图中绘制值为零的条形图之间的空格?

python - 如何强制Dataframe中的特定列类型?

Python内存模型

excel - 从 VBA 中的文本中剥离特殊字符的问题

非矩形域上的 Python 3D 图

python - 使用 OpenCV 或 Matplotlib/Pyplot 可视化 MNIST 数据集

python - 如何从 NumPy 数组中删除 NaN 值?

Python拆分字符串以找到最大的奇数整数