Spyder插件#
Spyder 是一款流行的开源 Python IDE, 它默认被包含在主要的 Python 发行版中,例如 Anaconda 和 WinPython。 Spyder 允许安装插件来为其添加额外功能。
modelx的Spyder插件增强了Spyder中对modelx的用户界面体验。 该插件添加了自定义的IPython控制台 和GUI部件,方便在Spyder中使用modelx。
该插件包含4个组件:MxConsole、MxExplorer、MxDataViewer和MxAnalyzer。
MxConsoles 以标签页形式出现在 Spyder 默认的 IPython 控制台组件中,并托管自定义的 IPython 终端。这些自定义终端的功能与默认 IPython 终端完全相同,唯一的区别在于自定义终端会连接到插件组件。为了实现其他插件组件与用户 Python 会话的交互,您应该使用这些自定义终端而非 Spyder 的默认终端。请注意,插件组件不会与运行在默认 IPython 控制台中的 Python 进行交互。
MxExplorer是主要的插件组件,它包含一个对象树面板,用于显示所选Model的对象树结构。通过对象树的上下文菜单,您可以执行各种操作,例如创建和删除modelx对象、在所选Model中定义与对象绑定的名称等。在MxExplorer的右侧,有一个属性面板和公式面板,用于显示详细信息。
MxDataView 允许您以表格形式查看modelx对象中的向量和表格数据值,例如list、set、tuple、dict、numpy array,以及pandas的DataFrame、Series和Index。它还可以显示标量对象的值和类型,例如int和str。
MxAnalyzer 让您能够直观地追踪计算依赖关系。 对于特定的单元格和参数组合(称为节点), MxAnalyzer会显示前置节点或后续节点的树状结构。
插件小部件可以像Spyder的默认小部件一样"停靠",这意味着您可以将这些小部件从Spyder主窗口中分离出来,使其拥有独立的窗口,也可以将它们重新"停靠"回主窗口的不同位置,以便按照您的喜好重新排列主窗口中的小部件位置。
MxExplorer 和 MxConsole#
如果插件安装成功,那么除了MxConsole之外,你应该能在Spyder窗口中看到插件组件的显示或隐藏。
如果找不到任何插件小部件,请前往视图->面板菜单, 勾选MxExplorer、MxDataViewer和MxAnalyzer。 如果找不到这些菜单项,请检查插件是否支持您使用的Spyder版本,若不支持请更新Spyder。 如果仍然找不到插件小部件, 请在modelx github站点提交问题。
MxExplorer 启动后的界面如下图所示。
在右下角面板的IPython控制台标签上右键点击,然后选择打开MxConsole菜单。
一旦MxConsole准备就绪,插件小部件就会填充干净的窗格。
MxConsole 的工作方式与常规 IPython 控制台完全相同, 唯一的区别是该控制台连接了插件小部件, 可以通过它们与控制台 Python 会话中的 modelx 组件进行交互。 要测试此行为, 可以在 MxConsole 中按如下方式创建新模型和空间:
>>> import modelx as mx
>>> model, space = mx.new_model(), mx.new_space()
>>> cells = space.new_cells()
modelx 资源管理器显示所创建空间的组件树。
双击树中的Cells2进行选择。 您会看到MxExplorer右侧窗格中显示了Cells2的属性, 其公式出现在窗格的下半部分。
MxExplorer 还可以列出所选空间中所有单元格的公式。 在树中选择一个空间,右键点击 弹出上下文菜单,然后点击显示公式。 公式列表将出现在 MxExplorer 模型树的右侧。
MxDataViewer#
MxDataViewer 允许您以表格形式查看modelx对象中的向量和表格数据值,例如list、set、tuple、dict、numpy array,以及pandas的DataFrame、Series和Index。它还可以显示标量对象的值和类型,例如int和str。
MxDataViewer 展示一个 pandas 数据框#
MxDataViewer 显示一个字典及其嵌套列表#
如果未显示MxDataViewer小部件,请按照操作MxExplorer的方式转到视图->面板菜单,并勾选MxDataViewer。
要指定检查对象,请在MxExplorer的对象树中点击该对象,右键打开上下文菜单,然后选择在DataView中选中或在新DataView中选中。您也可以点击树上方工具栏中的按钮。如果对象有参数,请在MxDataView的输入框中输入参数,然后点击更新按钮。
MxExplorer工具栏和上下文菜单中用于在MxDataView中选择对象的项目#
Mx分析器#
MxAnalyzer 让您能够直观地追踪计算依赖关系。
如果未显示MxDataView小部件,请像操作MxExplorer一样转到视图->面板菜单,并勾选MxAnalyzer。
MxAnalyzer有两个标签页,一个用于追踪前驱节点(即所选节点依赖的节点),另一个用于追踪后继节点(即依赖所选节点的节点)。
选择Precedents选项卡, 在标有Expression的文本框中输入返回Cells对象的表达式, 并在旁边的Args框中输入Cell的参数。 该Python表达式会在活动MxConsole中Python会话的全局命名空间内求值。 然后MxAnalyzer会显示直接或间接用于计算指定节点值的Cell节点树状图。
或者,您也可以从MxExplorer中设置要分析的对象。 通过在MxExplorer上下文菜单中点击分析选中项,选中的对象就会被设置到MxAnalyzer中(目前仅支持选择Cells单元)。
分析选中项 MxExplorer 上下文菜单项#
MxAnalyzer中的每个标签页内有两个分隔窗格。 上方窗格用于显示依赖树, 下方窗格则展示树中所选对象的公式。
MxAnalyzer中的依赖树和公式面板#
依赖树中的Value列会显示每个对象的类型(如果它不是标量值)。通过双击Value列或右键点击并从上下文菜单中选择Show Value,所选元素的值会显示在弹出窗口中。该弹出窗口以表格形式展示list、set、tuple、dict、numpy array的值,以及pandas的DataFrame、Series和Index。
显示值 MxAnalyzer 上下文菜单项#
弹出窗口显示Series的值#