【发布时间】:2022-11-17 05:31:41
【问题描述】:
我想使用 Mollweide 投影为一组主轴和一个插入轴制作天空图。这对于主轴很容易,但对于插图则不然。我尝试了一些不同的东西,但它不适用于插图。请帮忙!
Here可以找到经纬度数据,here可以找到天空位置概率密度数据。
首先,我制作主要情节:
xmin = min(l)
xmax = max(l)
ymin = min(b)
ymax = max(b)
X, Y = np.meshgrid(np.linspace(xmin, xmax, 100), np.linspace(ymin, ymax, 100))
mpl.rcParams["text.usetex"] = True
fig = plt.figure(1)
fig.set_figheight(8)
fig.set_figwidth(8)
ax = plt.axes(projection='mollweide')
ax.grid()
# skypost is the sky location probability-density data accessible above
plt.contour(X, Y, skypost, colors='blue', levels=[5, 50, 95])
效果很好。接下来,我定义了插入轴并绘制了等高线,但似乎没有办法完全适用于此。我想要的是让插图在轮廓上放大,同时保持摩尔维德投影。我试着按照 ligo.skymaps 上的例子去做,即
axesinset = plt.axes(
[0.0, 0.2, 0.25, 0.25],
projection='astro degrees zoom',
center='110d +20d',
radius='10 deg' )
plt.sca(axesinset)
axesinset.contour(X, Y, skypost, colors='blue', levels=[5, 50, 95])
axesinset.grid()
但这不起作用,因为轮廓甚至没有出现!我不明白为什么他们不出现。我还不明白为什么 inset 的 x 轴是向后的?
相反,我尝试在插图中绘制一个新的 mollweide 投影,并限制 xlim 和 ylim,但它说 mollweide 投影不支持这些选项。有没有办法限制轴的限制?
最后,我尝试在没有 mollweide 的情况下只做一个常规插图,这是有效的,但是轮廓的形状相对于与我的案例物理相关的主 mollweide 图上的轮廓扭曲了。所以这是非常次优的。
非常感谢任何建议和意见。
【问题讨论】:
标签: python python-3.x matplotlib map-projections insets