用matplotlib选择网格叠加的坐标系

Choose coordinate system of grid overlay with matplotlib

如何判断绘图中使用的是哪个坐标系,以及如何指定要将哪个坐标系用于叠加网格?

from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename
import matplotlib.pyplot as plt

image_file = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)

plt.subplot(projection=wcs) 
plt.imshow(hdu.data, origin='lower') 
plt.grid(color='white', ls='solid')
plt.show()

我如何指定要将银河(或赤道)坐标用于 plt.grid

你可以这样做:

from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename
import matplotlib.pyplot as plt

image_file = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)

fig = plt.figure(figsize=(12,12))
plt.subplot(projection=wcs) 
plt.imshow(hdu.data, origin='lower') 
ax = fig.gca()
overlay = ax.get_coords_overlay('galactic')
overlay.grid(color='red', ls='dotted')
plt.show()

完成。 (没有检查它背后的数学。)