我正在尝试在MacOSX上使用i python笔记本和python 2.7.2以及i python 1.1.0。
我不能让matplotlib图形以内联方式显示。
1 2 3 4
| import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline |
我还尝试过%pylab inline和ipython命令行参数--pylab=inline,但这没有区别。
1 2 3 4
| x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show() |
号
我得到的不是内嵌图形:
1
| <matplotlib.figure.Figure at 0x110b9c450> |
matplotlib.get_backend()显示我有'module://IPython.kernel.zmq.pylab.backend_inline'后端。
- 您的代码段不应生成,而应生成(因为您的最后一行正在打印标题)。无论如何,您的代码(使用%matplotlib inline和plt.show())在Windows上工作正常
- 谢谢你的建议,但它们对我不起作用。我仍然得到上面的输出,没有内联图形。你有什么故障排除的建议吗?
- 没有线索。相同的python,相同的ipython(和相同的后端),但是在windows上,它可以工作……我想剧情在你不插队的时候是有用的,对吧?
- 如果没有%matplotlib inline,内核将永远保持繁忙状态,并且不会得到任何输出。它必须被杀死。这是试图使用MacOSX后端,但我想由于某种原因无法打开它。当不使用ipython笔记本时,用于matplotlib的MacOSX后端工作正常。
- 我有一个相同的症状,但事实证明我在OSX 10.8上安装了32位版本的Canopy。用64位版本重新安装修复了它。
- 刚刚遇到这个问题,还有一件事要确保:所有这些命令必须在同一个输入上。不分开。(因此,对于换行符,使用shift+enter而不是enter)。当所有人一起跑的时候,我得到了阴谋。
- 在启动配置中修复一次:stackoverflow.com/questions/21176731/&hellip;
- 已删除对--pylab命令行参数的支持。所以你应该在笔记本中使用%pylab inline。
我在笔记本的第一个单元中使用了%matplotlib inline,它工作了。我认为你应该尝试:
1 2 3 4 5
| %matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt |
通过在配置文件中设置以下配置选项,您还可以在默认情况下以内联模式启动所有ipython内核:
1 2 3 4
| c.IPKernelApp.matplotlib=<CaselessStrEnum>
Default: None
Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx']
Configure matplotlib for interactive use with the default matplotlib backend. |
号
- 我会把这当作正确的答案。替代的--pylab inline可以工作,但会向您发出以下警告:不建议在pylab模式下启动所有内核,并且在将来的版本中将被禁用。请使用%matplotlib magic来启用matplotlib。Pylab意味着许多进口产品,这些产品会产生混淆的副作用,并损害笔记本的可复制性。
- @enord9@mightwolf:我正在学习使用i python(和python编程,而不是matlab);import matplotlib' do versus 将matplotlib导入为[名称]?原谅简单的评论
- @enord9@mightwolf:这与"从matplotlib导入mpl"相比有何区别?
- @对于您的问题,我看到的最好的解释是:effbot.org/zone/import-confusion.htm
- 谢谢@enord9。我刚测试了你的命令,因为已经有一段时间了。现在,在python 2.7.9和ipython 3.1.0上一切都可以正常工作。
- 我需要将"%matplotlib inline"放在块中包含"import matplotlib"的单元格中。如果我把它放在单独的第一个单元格中,它似乎不适用于导入。谢谢。
- 相关线程:mail.scipy.org/pipermail/ipython-dev/2015-july/016631.html
- 对于记录,要撤消此操作并切换回弹出窗口,您需要重新启动笔记本(并对代码中的行进行注释)。
- 实际上,您可能希望将其编辑为%matplotlib notebook
如果Matplotlib版本高于1.4,也可以使用
IPython 3.x及以上
1 2 3
| %matplotlib notebook
import matplotlib.pyplot as plt |
旧版本
1 2 3
| %matplotlib nbagg
import matplotlib.pyplot as plt |
。
两者都将激活nbagg后端,从而启用交互。
。
- 这似乎不适用于%config InlineBackend.figure_format='retina'。知道如何获得互动视网膜图像吗?
- 嗯……我对视网膜图像的专业知识真的不多。我唯一偶然发现的是这个链接,但它可能被否决了。如果有更多的人对此感到疑惑,我会把你的问题链接到这里,并祝你在那里找到答案。最好的
- 这个答案被低估了。%matplotlib notebook比%matplotlib inline提供了更好的可视化效果。
- 在Jupyter笔记本4.1.1/Ubuntu 16.04/Chrome上使用%matplotlib notebook不起作用(有点像,然后是空白的),%matplotlib inline确实显示图像,但它们是在标记文本之后出现的,而不是字面上的"inline"。
- 奇怪的是,你在Jupyter笔记本4.3.0上也有同样的经历吗?我刚检查过,它与笔记本4.3.0/薄荷18/铬(python 3.5.2,ipython 5.1.0)配合得很好。
- 笔记本电脑后端:JavaScript output is disabled in JupyterLab,必须launch Classic Notebook
- 使用%matplotlib notebook的绘图可以切断轴或图例:github.com/matplotlib/matplotlib/issues/9163
- 如果您先尝试%matplotlib inline,然后切换到%matplotlib notebook,可能会得到空结果。重新启动内核并再次运行。
- 是的,这样更好!!
CtrL+enter
。
魔术线:D
请参见:使用matplotlib进行绘图。
- 此链接现在已断开。
- @布莱德利德还没死。或者,您可以访问github上的ipython repo,进入"example"文件夹,找到"Plotting with matplotlib"笔记本。
- 很奇怪。前几天我死了。
我不知道为什么Joaquin把他的答案作为评论发表,但这是正确的答案:
用ipython notebook --pylab inline启动ipython
编辑:好的,现在根据下面的注释,这已被否决。使用%pylab inline魔法命令。
- 不再:"ipython笔记本--pylab inline[e 15:01:18.182 notebookapp]已删除对在命令行上指定--pylab的支持。[E 15:01:18.182 Notebook应用程序]请在笔记本中使用%pylab inline或%matplotlib inline。"
在jupyter(ipython 3)中默认使matplotlib内联:
编辑文件~/.ipython/profile_default/ipython_config.py。
加行c.InteractiveShellApp.matplotlib = 'inline'。
请注意,将这一行添加到ipython_notebook_config.py将不起作用。否则,它与Jupyter和IPython 3.1.0配合得很好。
我必须同意Foobarbecue的观点(我没有足够的记录来在他的帖子下面简单地插入评论):
现在建议不要用--pylab这个参数来启动python notebook,根据ipythonnb的创建者fernando perez的说法,%matplotlib inline应该是最初的notebook命令。
请参见:http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebook/part%203%20-%20Plotting%20with%20matplotlib.ipynb
我找到了一个非常令人满意的解决方法。我安装了Python,现在这对我来说是现成的。
我安装了水蟒,但Matplotlib没有策划
当我这样做的时候它就开始策划
1 2 3 4
| import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline |
在Ubuntu上,您可以删除%matplotlib inline,只要您在创建图形后拥有plt.show()。
- plt.show()也适用于Windows,但必须在每个数字后添加。%matplotlib inline的优点是,当它被调用一次时,笔记本中的所有数字都将是内联的。
您可以用语法错误来模拟这个问题,但是,%matplotlib inline不能解决这个问题。
首先是创建绘图的正确方法的示例。一切都按预期工作,进口和魔术,巨大9供应。
1 2 3
| df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF'))
df_randNumbers1.ix[:,["A","B"]].plot.kde() |
。
但是,通过将()保留在绘图类型的末尾,您会收到一个模糊的非错误。
铁代码:
1
| df_randNumbers1.ix[:,["A","B"]].plot.kde |
示例错误:
1
| <bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>> |
。
除了这条单行消息之外,没有堆栈跟踪或其他明显的理由认为您犯了语法错误。情节无法打印。
- 这不是语法错误——如果没有()来调用kde,ipython会告诉您kde是什么,即绑定方法。所以实际上,从IPython的角度来看,这根本不是一个"错误",所以为什么没有堆栈跟踪。
- @Kylestrand谢谢。在重新阅读了我的文章之后,我应该说:"我认为我有一个问题,那就是不能用%matplotlib inline命令让我的情节显示出来。我真的忘了把()放在绘图类型的末尾。所以,如果其他事情都失败了,看看你的括号里有没有错误。"