熊猫图不';在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

我试图在ipython笔记本中内联绘制图形,但是
.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])