我有显示非问题ASCII在Matplotlib字符,这些字符呈现为小盒子,而不是一个正确的字体,它看起来像(我填写这些框用红色油漆hightlight它们):
我如何解决它?
一个相关的问题是在Matplotlib重音字符 。
我有显示非问题ASCII在Matplotlib字符,这些字符呈现为小盒子,而不是一个正确的字体,它看起来像(我填写这些框用红色油漆hightlight它们):
我如何解决它?
一个相关的问题是在Matplotlib重音字符 。
这个问题实际上可能有几个不同的原因:
默认字体不包含这些字形
您可以使用以下更改默认字体(任何绘制完成之前!)
matplotlib.rc('font', family='Arial')
在matplotlib的某些版本中,你必须设置家庭:
matplotlib.rc('font', **{'sans-serif' : 'Arial',
'family' : 'sans-serif'})
(请注意,由于sans-serif
包含内部连字符**{}
语法,它实际上是必要的。)
第一个命令改变sans-serif
字体家族只包含一种字体(在我的情况下,它是宋体 ),第二组的默认字体家族sans-serif
。
其他选项都包含在文档中 。
你已经创建了不当/传递的字符串对象为Matplotlib
即使字体包含正确的字形,如果你忘了使用u
创建的Unicode常量,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 -*-
jb.
的回答是不够好。 如果你想避免增加u
,使用此
from __future__ import unicode_literals