我想使用healpy在一个图形中绘制许多子图。如何:
我想基于通用坐标生成如图1所示的图,该图是在MATLAB中绘制的
现在,我仅使用healpy将其绘制如下:
产生图3(类似于图2)的类似代码如下:
import numpy as np
import healpy as hp
degree = 4
nside = 2**degree
num_Pixel = hp.nside2npix(nside)
m = np.arange(num_Pixel)
margins = [[0.02,0,0,0],[0.01,0,0,0],[0.01,0,0.01,0],
[0.02,0,0,0],[0.01,0,0,0],[0.01,0,0.01,0],
[0.02,0.05,0,0],[0.01,0.05,0,0],[0.01,0.05,0.01,0]]
title = [
'Equinox', 'Jun. Solstice', 'Dec. Solstice',
'','','','','','']
for ifig in range(1,10):
if ifig < 7:
hp.cartview(
m, sub=330+ifig, margins=margins[ifig1],
cbar=False, title=title[ifig-1])
else:
hp.cartview(
m, sub=330+ifig, margins=margins[ifig-1],
cbar=True, title=title[ifig-1])
代码产生了数字3
答案 0 :(得分:0)
恐怕healpy
并没有很好的方法来处理颜色条,刻度,刻度标签,坐标轴等。
最好的方法是根据您的HEALPix地图生成FITS图像(例如,使用hp.cartview(..., return_projected_map=True)
或使用reproject
包)。
您还需要为此生成正确的FITS标头,astropy
将是正确的工具(how-to manipulate FITS headers)。
一旦有了这些,就可以在astropy
中使用出色的WCSAxes
框架,它为您提供了许多有据可查的自定义选项。