0

我在使用 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:图像/png 格式化程序中的异常:FormatterWarning,

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

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

如何显示图片?

4

1 回答 1

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)解决了这个问题。现在它工作正常。

于 2016-12-28T14:02:47.403 回答