我正在访问一个远程ipython笔记本服务器。我知道我可以执行%matplotlib inline来获得内联图,执行%matplotlib qt来获得弹出图。但是,%matplotlib qt会在服务器计算机上弹出绘图,而不是在客户端计算机上弹出。有没有办法让这个图在客户机上显示出来呢?该用例用于3d绘图的操作(旋转等),如果能提供一种在远程机器上显示交互式3d绘图的替代方法,我也会很感激。
发布于 2015-12-27 19:09:09
从matplolib 1.4开始,您可以使用:
%matplotlib notebook这将创建可在笔记本中缩放的视图:

并旋转:

发布于 2015-12-27 03:59:35
更新:在this SO question开始时,描述了您需要的设置。
非最佳解决方案:要获得确切的答案,您应该确定连接到远程mashine (服务器)的方式。我猜您目前只有一些命令行访问权限。我想到的解决方案需要在远程mashine上安装浏览器,并在每次运行matplotlib脚本时访问它。
(与matplotlib交互的最好方法是在您的远程机器上启动web服务器。那么matplotlib的一个后端应该可以与客户端mashine`s的浏览器一起工作。我自己还没有这样做,因为我发现了另一个修复-不是一个可靠的解决方案。修复说明如下。)
我建议你使用mpld3库来做
mpld3.show()而不是常规
plt.show()然后,绘图将在浏览器窗口(localhost)中打开,并且将是交互式的。(注意: mpld3目前并不支持所有matplotlib功能。例如:'annotate()‘不是-改用'text()’。SO question)
然后我找到了一个商业工具- forwardhq.com,他们的插件服务组合可以创建一个隧道来分享你的本地网页。安装完他们的插件后,运行你修改过的脚本,点击extiction按钮(Chrome),你就会得到一个与任何人分享的链接。(服务现在有7天的试用期。)
https://stackoverflow.com/questions/32621160
复制相似问题