如何使用pylab远程保存数字?

ger*_*rry 71 python matplotlib figure

我正试图用命令在远程计算机上生成一个数字pylab.savefig.但我得到了这样的错误:

Unable to access the X Display, is $DISPLAY set properly?
Run Code Online (Sandbox Code Playgroud)

如何正确保存图形?

Joe*_*ton 141

默认情况下,matplotlib将使用类似TkAgg后端的内容.这需要运行X服务器.

虽然您可以使用X-forwarding,但是当matplotlib尝试连接远程X-server时会出现明显的延迟.如果您不需要与绘图进行交互,那么通过完全避免X连接来加快速度通常会更好.

如果你想在不需要X服务器的情况下制作绘图,请改用Agg 后端 .

例如,做这样的事情:

import matplotlib
matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt

fig = plt.figure()
plt.plot(range(10))
fig.savefig('temp.png')
Run Code Online (Sandbox Code Playgroud)

如果您希望这是默认行为,则可以修改matplotlibrc文件Agg默认使用后端.

有关更多信息,请参阅此文章.

  • 我和格里有同样的问题.对我来说,乔的伎俩是不够的,我还需要做ssh -X nos@server.com而不仅仅是ssh (2认同)