当与astropy一起使用时,Imshow不显示图像

时间:2015-10-21 21:11:04

标签: python matplotlib imshow astropy

我遇到了使用astropy查看图像的问题。这是我的代码:

from astropy.io import fits
import matplotlib.pyplot as plt
hdu_list=fits.open("500m2deep.fit")
image_data=hdu_list[0].data
hdu_list.close()
plt.imshow(image_data,cmap='gray')
plt.show()

打开文件工作正常,我可以显示image_data等条目。但是如果我使用imshow,图片就不会显示。它显示以下错误:

  

C:\ Python27 \ lib \ site-packages \ IPython \ core \ formatters.py:239:FormatterWarning:image / png formatter中的异常:     FormatterWarning,   

如果我按照某些网站上的建议使用%matplotlib内联或类似内容,此错误消失,但根本没有显示图像,程序运行,终止,没有图片弹出。我还尝试在plt.figure(之前添加imshow())之类的内容,但这也无济于事。

如果我使用Spyder,Ipython或Ipython Notebook,就会发生这种情况。我正在使用最新版本的python(x,y)。

如何显示图片?

1 个答案:

答案 0 :(得分:0)

可能为时已晚,无法为您提供有用的解决方案,但也许其他人可以获利。 我最近使用astropy网站上的示例代码(由我添加的第一行和最后一行)在Ubuntu 16.04,python 3.5和Astropy 1.1.1上遇到了同样的问题,这是:

#!/usr/bin/python3
import matplotlib.pyplot as plt
from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename

filename = get_pkg_data_filename('galactic_center/gc_msx_e.fits')

hdu = fits.open(filename)[0]
wcs = WCS(hdu.header)
plt.subplot(projection=wcs)
plt.imshow(hdu.data, vmin=-2.e-5, vmax=2.e-4, origin='lower')
plt.grid(color='white', ls='solid')
plt.xlabel('Galactic Longitude')
plt.ylabel('Galactic Latitude')
plt.show()

确实打开了图形窗口,但没有显示任何图像数据。 将astropy版本更新为1.3(也将numpy更新为1.11.3)修复了该问题。现在它工作正常。