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 -*-