当前位置: 代码迷 >> python >> 与astropy一起使用时,imshow不显示图像
  详细解决方案

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

热度:88   发布时间:2023-06-13 16:55:23.0

我在使用星空图查看图像时遇到问题。 这是我的代码:

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格式化程序中的异常:FormatterWarning,

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

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

如何显示图片?

可能为时已晚,无法为您提供有用的解决方案,但也许其他人可以从中获利。 我最近在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)解决了此问题。 现在工作正常。