有人可以向我解释到底有什么用%matplotlib inline
吗?
有人可以向我解释到底有什么用%matplotlib inline
吗?
Answers:
%matplotlib
是IPython中的魔术函数。为了方便起见,我在这里引用相关文档供您阅读:
IPython有一组预定义的“魔术函数”,您可以使用命令行样式的语法来调用它们。有两种魔术,面向行的和面向单元的。换行符以%字符作为前缀,其工作方式与OS命令行调用非常相似:它们作为行的其余部分作为参数,其中的参数传递时不带括号或引号。线魔术可以返回结果,并且可以在作业的右侧使用。单元格魔术的前缀为%%,并且它们是函数,它们不仅作为该行的其余部分作为参数,而且还作为单独的参数作为其下方的行的参数。
%matplotlib inline
将matplotlib的后端设置为'inline'后端:
使用此后端,绘图命令的输出将在Jupyter笔记本之类的前端内联显示,直接位于生成它的代码单元下方。然后,生成的图也将存储在笔记本文档中。
使用“内联”后端时,您的matplotlib图将包含在笔记本中代码旁边。还可能值得阅读如何内联制作IPython笔记本matplotlib绘图,以获取有关如何在代码中使用它的参考。
如果你想交互,以及,你可以使用nbagg后端与%matplotlib notebook
(在IPython中3.X),如所描述这里。
如果您正在运行IPython,它%matplotlib inline
将使您的绘图输出出现并存储在笔记本中。
根据文件
要进行设置,
matplotlib
必须先执行%matplotlib magic command
。这将执行必要的幕后设置,以使IPython能够与正确地并行工作matplotlib
;但是,它实际上并不执行任何Python导入命令,也就是说,没有名称添加到名称空间。由IPython提供的一个特别有趣的后端是
inline
后端。此功能仅适用于Jupyter Notebook和Jupyter QtConsole。可以按以下方式调用它:%matplotlib inline
使用此后端,绘图命令的输出将在Jupyter笔记本之类的前端内联显示,直接位于生成它的代码单元下方。然后,生成的图也将存储在笔记本文档中。
从IPython 5.0和matplotlib 2.0开始,您可以避免使用IPython的特定魔术,而使用
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
具有在IPython之外工作的优点。
inline
,否则绘图是在外部窗口中生成的,您需要使用display()在笔记本中显示它们。
如果您不知道后端是什么,可以阅读以下内容:https : //matplotlib.org/tutorials/introductory/usage.html#backends
有些人从python shell交互地使用matplotlib,并且在键入命令时弹出绘图窗口。有些人运行Jupyter笔记本并绘制内联图以进行快速数据分析。其他人则将matplotlib嵌入到wxpython或pygtk等图形用户界面中,以构建丰富的应用程序。有些人在批处理脚本中使用matplotlib从数值模拟生成后记图像,还有一些人运行Web应用程序服务器来动态提供图形。为了支持所有这些用例,matplotlib可以针对不同的输出,这些功能中的每一个都称为后端。“前端”是用户面对的代码,即绘图代码,而“后端”则是幕后的所有艰苦工作以制作图形。
因此,当您键入%matplotlib inline时,它将激活内联后端。如前几篇文章所述:
使用此后端,绘图命令的输出将在Jupyter笔记本之类的前端内联显示,直接位于生成它的代码单元下方。然后,生成的图也将存储在笔记本文档中。
这只是意味着我们作为代码一部分创建的任何图形都将出现在同一笔记本中,而不是在单独的窗口中出现,如果我们不使用此魔术语句,则该窗口将发生。
TL; DR
%matplotlib inline
-显示输出内联IPython内核具有通过执行代码来显示图的功能。IPython内核旨在与matplotlib绘图库无缝协作以提供此功能。
%matplotlib
是一个魔术命令,它执行必要的幕后设置,以使IPython与IPython紧密配合matplotlib
。它不执行任何Python导入命令,即没有名称添加到名称空间。
%matplotlib
(仅适用于Jupyter Notebook和Jupyter QtConsole)
%matplotlib inline
(有效值'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'
)
%matplotlib gtk
示例-GTK3Agg-对GTK 3.x画布的Agg渲染(需要PyGObject和pycairo或cairocffi)。
有关matplotlib交互式后端的更多详细信息:此处
与开始
IPython 5.0
和matplotlib 2.0
你能避免使用IPython中的特殊魔法和使用matplotlib.pyplot.ion()
/matplotlib.pyplot.ioff()
其中有工作的IPython之外还有优势。
如果您正在运行Jupyter Notebook,%matplotlib内联命令将使您的绘图输出出现在笔记本中,也可以存储。
不必写那个。没有(%matplotlib
)魔术功能,对我来说效果很好。我正在使用Sypder编译器,这是Anaconda随附的。