Matplotlib中的非ASCII字符

我有一个问题,在Matplotlib中显示非ASCII字符,这些字符呈现为小框而不是一个适当的字体,它看起来像(我用红色的油漆填充这些框高亮他们):

这是显示问题的图像

我如何解决它?

一个相关的问题是Matplotlib中的重音字符

这个问题实际上可能有几个不同的原因:

默认字体不包括这些字形

您可以使用以下方法更改默认字体(在任何绘图完成之前!)

matplotlib.rc('font', family='Arial') 

在matplotlib的某些版本中,您将拥有te set系列:

  matplotlib.rc('font', **{'sans-serif' : 'Arial', 'family' : 'sans-serif'}) 

(请注意,因为sans-serif**{}语法中包含连字符,所以实际上是必要的。)

第一个命令将sans-serif字体族更改为只包含一种字体(在我的例子中是Arial ),第二个命令将默认字体族设置为sans-serif

其他选项包含在文档中 。

你有不恰当的创build/传递string对象到Matplotlib

即使字体包含适当的字形,如果您忘记使用u来创buildUnicode常量,Matplotlib将具有以下行为:

  plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]") 

所以你需要添加u

  plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]") 

另一个原因是你忘了把一个UTF-8魔术评论放在文件的顶部(我读到这可能是问题的根源 ):

  # -*- coding: utf-8 -*-