绘制坐标轴发生变化的 FITS 图像
Plot a FITS image with changed axes
我想以适合的格式绘制此图像。
但我得到了这个
我试过用 imshow 改变坐标轴,但效果并不好。这是我正在使用的代码。
import matplotlib.pyplot as plt
from astropy.visualization import astropy_mpl_style
plt.style.use(astropy_mpl_style)
from astropy.utils.data import get_pkg_data_filename
from astropy.io import fits
image_file = get_pkg_data_filename('Or.fits')
fits.info(image_file)
image_data = fits.getdata(image_file, ext=0)
print(image_data.shape)
plt.figure()
plt.imshow(image_data, cmap='gray')
plt.colorbar()
从您在问题中发布的第二张图片来看,image_data
似乎具有超大的值,大多数数据点都非常小。尝试以对数方式映射数据点,希望能解决问题。
将以下内容添加到代码的开头:
from matplotlib.colors import LogNorm
并将您的绘图线更改为以下内容,以便 matplotlib 在绘制图像时使用这些值的对数。
plt.imshow(image_data, cmap='gray', norm=LogNorm())
我想以适合的格式绘制此图像。
但我得到了这个
我试过用 imshow 改变坐标轴,但效果并不好。这是我正在使用的代码。
import matplotlib.pyplot as plt
from astropy.visualization import astropy_mpl_style
plt.style.use(astropy_mpl_style)
from astropy.utils.data import get_pkg_data_filename
from astropy.io import fits
image_file = get_pkg_data_filename('Or.fits')
fits.info(image_file)
image_data = fits.getdata(image_file, ext=0)
print(image_data.shape)
plt.figure()
plt.imshow(image_data, cmap='gray')
plt.colorbar()
从您在问题中发布的第二张图片来看,image_data
似乎具有超大的值,大多数数据点都非常小。尝试以对数方式映射数据点,希望能解决问题。
将以下内容添加到代码的开头:
from matplotlib.colors import LogNorm
并将您的绘图线更改为以下内容,以便 matplotlib 在绘制图像时使用这些值的对数。
plt.imshow(image_data, cmap='gray', norm=LogNorm())