绘制非标准轴
Plotting non-standard axes
我正在使用 RA 和 Dec 坐标绘制图像。
图像与 (RA, Dec) = (0,0) 点重叠。对于 y 轴(偏角),这很好,但对于 x 轴,以度为单位,我发现很难正确绘制它。
我希望绘图从 (RA, Dec) = (358, -2) 开始,跨越四平方度直到 (2, 2)。
有没有办法让 python/matplotlib 理解 x 轴上的 360 度 = 0 度?
我是这样开始的:
lowerleft_ra = 358.
lowerleft_dec = -2.
lx = lowerleft_ra
ly = lowerleft_dec
uy = lowerleft_dec + 4.
ux = lowerleft_ra + 4.
plt.imshow(image, origin = 'lower', extent = [lx, ux, ly, uy])
这使得 x 轴从 358 跨度到 362,这不是我要找的。
然后我尝试如下修改它:
if lowerleft_ra + 4. > 360.:
ux = lowerleft_ra + 4. - 360.
else:
ux = lowerleft_ra + 4.
但这只是将 x 轴 运行 设置为从 358 到 2 度的相反顺序。
我怎样才能让它达到 358、359、0、1、2?
传递给 imshow
的范围信息通知 matplotlib 您正在绘制的对象的大小(比例、比例等)。绘制完成后,您可以自由地手动调整轴。虽然我认为您不能告诉 matplotlib 绘制具有 non-linear 值的轴,但您 可以 替换刻度标签。
我建议创建一个从 -2 到 +2 的比例,然后使用以下方法根据您的喜好应用刻度标签:
plt.xticks([-2,-1,0,1,2], [358,359,0,1,2])
或使用 API
ax.set_xticks([-2,-1,0,1,2])
ax.set_xticklabels([358,359,0,1,2])
这给了我以下情节:
我正在使用 RA 和 Dec 坐标绘制图像。 图像与 (RA, Dec) = (0,0) 点重叠。对于 y 轴(偏角),这很好,但对于 x 轴,以度为单位,我发现很难正确绘制它。
我希望绘图从 (RA, Dec) = (358, -2) 开始,跨越四平方度直到 (2, 2)。 有没有办法让 python/matplotlib 理解 x 轴上的 360 度 = 0 度?
我是这样开始的:
lowerleft_ra = 358.
lowerleft_dec = -2.
lx = lowerleft_ra
ly = lowerleft_dec
uy = lowerleft_dec + 4.
ux = lowerleft_ra + 4.
plt.imshow(image, origin = 'lower', extent = [lx, ux, ly, uy])
这使得 x 轴从 358 跨度到 362,这不是我要找的。 然后我尝试如下修改它:
if lowerleft_ra + 4. > 360.:
ux = lowerleft_ra + 4. - 360.
else:
ux = lowerleft_ra + 4.
但这只是将 x 轴 运行 设置为从 358 到 2 度的相反顺序。
我怎样才能让它达到 358、359、0、1、2?
传递给 imshow
的范围信息通知 matplotlib 您正在绘制的对象的大小(比例、比例等)。绘制完成后,您可以自由地手动调整轴。虽然我认为您不能告诉 matplotlib 绘制具有 non-linear 值的轴,但您 可以 替换刻度标签。
我建议创建一个从 -2 到 +2 的比例,然后使用以下方法根据您的喜好应用刻度标签:
plt.xticks([-2,-1,0,1,2], [358,359,0,1,2])
或使用 API
ax.set_xticks([-2,-1,0,1,2])
ax.set_xticklabels([358,359,0,1,2])
这给了我以下情节: