在客户机上制作ipython notebook%matplotlib qt pop out plot

时间:2015-09-17 01:15:43

标签: matplotlib ipython ipython-notebook

我正在访问一个远程ipython笔记本服务器。我知道我可以使用%matplotlib内联来获取内联图和%matplotlib qt以获得弹出图。但是,%matplotlib qt弹出服务器计算机上的图,而不是客户端计算机。有没有办法让客户机上的情节出来?用例是用于操作3d图(旋转等),如果提供在远程机器上显示交互式3d图的替代方法,我也会很感激。

2 个答案:

答案 0 :(得分:0)

<强>更新this SO question开头,您需要进行设置。

非最佳解决方案: 对于确切的答案,您应该确定连接到远程mashine(服务器)的方式。我猜你目前只有一些命令行访问权限。 我自己解决的解决方案要求安装在远程mashine上的浏览器以及每次运行matplotlib脚本时都可以访问它。

(与matplotlib进行交互的最好方法是在你的远程机器上启动一个web服务器。然后matplotlib的一个后端应该与客户端mashine的浏览器一起工作。我自己也没有这样做然而,因为我发现了另一个修复 - 不是一个可靠的解决方案。修复程序如下所述。)

我建议你使用mpld3库来做

mpld3.show()

而非常规

plt.show()

然后情节将在你的brouser窗口(localhost)中打开并且将是交互式的。 (注意:并非mpld3目前支​​持所有matplotlib功能。例如:&#39; annotate()&#39;不是 - 使用&#39; text()&#39;而是。SO question)< / p>

然后我找到了一个商业工具 - forwardhq.com 他们的插件服务组合可以创建一个隧道来共享您的localhost网页。安装完插件后,运行修改过的脚本,点击extict按钮(Chrome),即可获得与任何人共享的链接。 (该服务现在有7天的试用期。)

答案 1 :(得分:0)

从matplolib 1.4开始,您可以使用:

%matplotlib notebook

这会创建一个笔记本内可缩放视图:

enter image description here

并旋转:

enter image description here