远程ipython内核不显示绘图

时间:2015-03-03 12:29:50

标签: python matplotlib ipython ipython-notebook x11-forwarding

我的设置是我在Linux服务器上远程运行ipython笔记本,然后通过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转发仍然存在问题 - 调试此问题的最佳方法是什么?欢迎所有建议。

1 个答案:

答案 0 :(得分:0)

  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();