用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()
完成。 (没有检查它背后的数学。)
如何判断绘图中使用的是哪个坐标系,以及如何指定要将哪个坐标系用于叠加网格?
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()
完成