熊猫图不';在ipython笔记本中不显示为内联
我试图在ipython笔记本中内联绘制图形,但是熊猫图不';在ipython笔记本中不显示为内联,python,matplotlib,pandas,plot,ipython-notebook,Python,Matplotlib,Pandas,Plot,Ipython Notebook,我试图在ipython笔记本中内联绘制图形,但是.plot()methodos只显示对象信息,如下所示 <matplotlib.axes._subplots.AxesSubplot at 0x10d8740d0> 使用ipython笔记本--matplotlib=inline显示相同的内容。更改 ipython notebook --matplotlib=inline 到 请注意,无符号。我将根据我的上述评论为您提供一个示例: 你有这样的东西: import matplotli
.plot()
methodos只显示对象信息,如下所示
<matplotlib.axes._subplots.AxesSubplot at 0x10d8740d0>
使用ipython笔记本--matplotlib=inline显示相同的内容。更改
ipython notebook --matplotlib=inline
到
请注意,无符号。我将根据我的上述评论为您提供一个示例: 你有这样的东西:
import matplotlib.pyplot as plt
%matplotlib inline
legend = "\xe2"
plt.plot(range(5), range(5))
plt.legend([legend])
其结果是:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
正如我所说,这是因为matplotlib希望使用类型为unicode
的字符串。因此,在打印过程中,matplotlib尝试使用decode
对字符串进行解码以将其转换为unicode。但是,decode
将ascii
作为默认编码,并且由于您的字符不属于ascii
,因此会显示一个错误。解决方案是自己用适当的编码解码字符串:
import matplotlib.pyplot as plt
%matplotlib inline
legend = "\xe2".decode(encoding='latin-1')
plt.plot(range(5), range(5))
plt.legend([legend])
顺便说一句,关于使用ipython笔记本--matplotlib inline
,这样做被认为是不好的做法,因为为了得到最终的笔记本,您隐藏了您所做的事情。最好在笔记本中包含%matplotlib inline
。感谢您的帮助。
我已经尝试了以上所有方法,但都不起作用
在这里,我发现matplotlib 1.4.x中的fontmanager.py
中有一个bug,它在matplotlib的开发版本中得到了修复,并且工作正常
很抱歉,我没能早点找到它。谢谢大家。我想我们需要更多信息,显示您的代码、导入和平台…您在使用
%matplotlib inline
时描述的错误是由于处理unicode和字符串的问题造成的。很可能,您有使用拉丁-1编码的字符,并且转换正在尝试使用解码
。但是,decode
正在使用默认编码ascii
将您的字符转换为unicode,并且由于在ascii中找不到该字符,因此转换失败。在将数据传递到matplotlib之前,应尝试使用decode(“\xe2.decode(encoding='latin-1')
)将字符串转换为unicode。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
import matplotlib.pyplot as plt
%matplotlib inline
legend = "\xe2".decode(encoding='latin-1')
plt.plot(range(5), range(5))
plt.legend([legend])