Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
远程ipython内核不显示绘图_Python_Matplotlib_Ipython_Ipython Notebook_X11 Forwarding - Fatal编程技术网

远程ipython内核不显示绘图

远程ipython内核不显示绘图,python,matplotlib,ipython,ipython-notebook,x11-forwarding,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],'*-') 我得到的只是[]。我尝试过其他各种后端,结果都是一样的

我的设置是在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],'*-')
我得到的只是
[]
。我尝试过其他各种后端,结果都是一样的。当使用
%pylab inline
时,将显示绘图,但我希望它们位于单独的窗口中

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

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

    ssh -L 8000:localhost:8888 your_user_name@your_server_ip
    
    %matplotlib inline
    from matplotlib import pyplot as plt
    
    plt.figure()
    plt.imshow(sample_image)
    plt.show();
    
  • 在您的代码中,在导入
    pyplot
    之前,使用
    %matplotlib inline
    预先加载后端并以
    结束如下所示:

    ssh -L 8000:localhost:8888 your_user_name@your_server_ip
    
    %matplotlib inline
    from matplotlib import pyplot as plt
    
    plt.figure()
    plt.imshow(sample_image)
    plt.show();
    

  • 您是否尝试过
    plt.show()
    ?您可以使用@plonser通过局域网上的浏览器访问ipython笔记本,而不是ssh tunel:这就解决了问题,谢谢@wrdeman:我实际上一直在这样做——我真正的意思是通过ssh隧道访问服务器。1)不要使用%pylab,使用%matplotlib,2)内核在子进程中运行,可能不会继承环境变量,因此没有X-Forward。