首页 文章

matlibplot没有显示ssh到rasp pi

提问于
浏览
-2

我正在尝试使用python生成一个绘图,而ssh生成一个锉刀 . 我尝试了一些不同的东西但是我无法显示情节或者我收到了Traceback错误 .

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
print ('start')
plt.plot([1,2,3,4],[1,4,9,16])
plt.show()
print ('finished')

开始完成

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
print ('start')
plt.plot([1,2,3,4],[1,4,9,16])
plt.show()
print ('finished')

启动Traceback(最近一次调用最后一次):文件“run_ssa_test1.py”,第20行,在plt.plot([1,2,3,4],[1,4,9,16])文件“/ usr / local / lib / python3.4 / dist-packages / matplotlib / pyplot.py“,第3306行,在plot ax = gca()文件中”/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot . py“,第950行,在gca中返回gcf() . gca(** kwargs)文件”/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py“,第586行,在gcf返回图中()文件“/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py”,第535行,图** kwargs)文件“/usr/local/lib/python3.4/dist- packages / matplotlib / backends / backend_tkagg.py“,第81行,在new_figure_manager中返回new_figure_manager_given_figure(num,figure)文件”/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_tkagg.py“,line 89,在new_figure_manager_given_figure window = Tk.Tk()文件“/usr/lib/python3.4/tkinter/init.py”,第1854行,在init self.tk = _tkinter.create(screenName,baseName,className,interactive, wantobjects,useTk,sync,use)_tk inter.TclError:没有显示名称和没有$ DISPLAY环境变量

1 回答

  • 1

    要显示图像,matplotlib或任何其他工具,需要显示以显示它 . 默认情况下,SSH登录仅提供控制台访问权限 .

    我看到的两个最明显的选择是:

    • 在树莓派上生成图像,将它们写入文件,然后将它们检索到本地计算机上进行显示 .
    host$ ssh rpi_hostname
       rpi$ python make_images.py
       # where `make_images.py` contains something like
    
    import matplotlib.pyplot as plt
       plt.plot([1,2,3,4],[1,4,9,16])
       plt.savefig("myfig.png", bbox_inches='tight', ...)
    
    rpi$ logout
       host$ scp rpi_hostname:myfig.png .
       host$ display myfig.png
    

    此示例使用 display ,imagemagick中的工具 . 但显然将显示更改为 eoggthumb 或您已安装的任何内容 .


    • 使用X-forwarding登录到raspberry pi:
    host$ ssh -X hostname
    

    现在,rpi上生成的图像可以在主机上显示的显示器上呈现,即 pyplot.show() 将起作用 .

    选项(2)可能相当慢,并且还取决于在rpi上安装后端的更多库 .


    第三种选择是完全避免在rpi上生成绘图,而是将数据检索到主机pc并在那里绘图 .

相关问题