Python 2.7.12 Matplotlib x11转发未显示或抛出多个错误

时间:2016-07-27 22:02:02

标签: python python-2.7 matplotlib x11 x11-forwarding

我通过putty从Windows 7登录远程linux机器。在设置中,我启用了X11转发选项,并在登录ssh服务器时添加了-X标志。在这个服务器上,我运行以下python代码:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
import pyfits
a = raw_input("path: ") #filepath on the server, conected with filename
file = pyfits.open (a +'/file.fits', memap = 'True')
data = file[0].data
print data.shape #shape gets printed correctly

plt.figure(1)
plt.imshow(data[0,:,:], cmap = 'gray')
print 3
plt.show()
print 4

我得到所有打印值,输出如下:

(300, 512, 512)
3
4

没有引发错误,也没有x11窗口打开。 comadoline回归,好像程序结束了。是否有可能让plt.show()命令实际显示在远程控制Windows机器上?

1 个答案:

答案 0 :(得分:0)

我明白了:

起初它就像“tcaswell”所说,你不能在交互式窗口中使用'Agg'后端。只需删除前两行代码即可修复此错误。 第二个问题是,plt.figure(1)命令创建了一个新的数字1,但在plt.show()命令中没有指定应显示的数字。因此,可以通过删除显示plt.figure(1)的行或将图形编号放在plt.show()命令后面的括号中来解决此错误:plt.show(1)。通过这种方式,可以在一个文件中创建多个图形,并能够在它们之间切换。