问题描述
我在使用星空图查看图像时遇到问题。 这是我的代码:
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)。
如何显示图片?
1楼
可能为时已晚,无法为您提供有用的解决方案,但也许其他人可以从中获利。 我最近在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)解决了此问题。 现在工作正常。