我正在尝试在Canopy Express上使用matplotlib。即使是简单的代码也不会运行......
注意:系统无法识别plot(x)
功能。似乎有一些ASCII X Unicode。我的电脑使用Unicode英语(美国)。
从控制台我们有:
C:\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\font_manager.py in createFontList(fontfiles, fontext)
582 continue
583 try:
--> 584 prop = ttfFontProperty(font)
585 except KeyError:
586 continue
C:\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\font_manager.py in ttfFontProperty(font)
396 sfnt2 = ''
397 if sfnt4:
--> 398 sfnt4 = sfnt4.decode('ascii').lower()
399 else:
400 sfnt4 = ''
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)'
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10)
line, = plt.plot(x, np.sin(x), '--', linewidth=2)
dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off
line.set_dashes(dashes)
plt.show()
答案 0 :(得分:6)
这是matplotlib 1.3.0中的一个已知issue,它与您的一个字体名称(可能是Æ
字符)中包含非ASCII字符有关。
您可以找到并删除有问题的字体(最好的主意),也可以尝试使用以下步骤修补安装:
在文本编辑器中打开以下内容:
\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site- packages\matplotlib\font_manager.py
搜索sfnt4 = sfnt4.decode('ascii').lower()
并替换为sfnt4 = sfnt4.decode('ascii', 'ignore').lower()
请注意,matplotlib的下一个版本中不会存在此错误。