【问题标题】:matplotlib xkcd with utf-8 label带有 utf-8 标签的 matplotlib xkcd
【发布时间】:2014-12-31 15:28:23
【问题描述】:

我想要一个带有标签的情节:

plt.plot(np.sin(np.linspace(1,10)), label='fête')
plt.legend(loc='upper left')
plt.show()

效果很好。现在让我们试试 xkcd 模式:

plt.xkcd()
plt.plot(np.sin(np.linspace(1,10)), label='fête')
plt.legend(loc='upper left')
plt.show()

没有错误,但标签是“f?te”。看来这可能是字体问题,所以我补充一下,这是linux(ubuntu)。

【问题讨论】:

  • 我在 OS X 上没有看到这个问题,所以可能确实不是 matplotlib 的代码库中的错误,而是 ubuntu 上的字体问题。
  • 感谢您提供的测试点。可悲的是,这很可能是真的(它是特定于 ubuntu 的)。遗憾的是,这将使提交错误变得非常困难。该字体明显具有 UTF-8 字形(使用 libreoffice 进行测试)。我已经在askubuntu.com/questions/567701/matplotlib-xkcd-with-utf-8-label 发布了这个问题,如果我找到满意的答案,我会到处跟进。

标签: ubuntu python-3.x matplotlib


【解决方案1】:

Humor Sans 字体没有那个也没有其他字形。

当您在 LibreOffice 上书写时,它会为那些没有指定字形的字体使用备用字体,这就是您所看到的备用字体。例如,请注意 Humor Sans 中所有字母的字形都是大写的,即使您键入的是小写字母,但是当您键入带有波浪号或重音符号的字母时,它们会显示为带有波浪号的小写;那是因为它是备用字体。

如果您使用其他类似漫画的字体,例如 «Comic Sans» 或 «Stay Puft»,则不会出现此问题,尽管它们并不那么漂亮。

在 Windows 或 OSX 上,对于带有 XKCD 的 matplotlib,默认值可能是 «Comic Sans»。

【讨论】:

    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2018-05-02
    相关资源
    最近更新 更多