3

我的设置是我在 linux 服务器上远程运行 ipython notebook,然后通过 ssh 隧道从 OSX 连接到它。

我可以确认 X 转发工作正常,并且从 ipython 启动的同一终端我可以使用 gnuplot 等。

在我本地机器上的 ipython 会话中尝试执行类似的操作

import matplotlib as mpl
mpl.use("GTK3cairo")
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],'*-')

我得到的只是[<matplotlib.lines.Line2D at 0x54bcc90>]。我尝试了各种其他后端,结果相同。使用%pylab inline绘图时会出现,但我希望它们在单独的窗口中。

我想 X 转发仍然有问题 - 调试它的最佳方法是什么?欢迎所有建议。

4

1 回答 1

2
  1. 连接到服务器时,使用-L(执行本地端口转发)而不是-X(执行图形输出转发),如下所示:

    ssh -L 8000:localhost:8888 your_user_name@your_server_ip
    
  2. 在您的代码中,%matplotlib inline在导入之前使用pyplot以预先加载后端并以;如下方式结束:

    %matplotlib inline
    from matplotlib import pyplot as plt
    
    plt.figure()
    plt.imshow(sample_image)
    plt.show();
    
于 2019-05-27T12:55:30.513 回答