我正在尝试对齐图中主x轴和次x轴的刻度。我的absolute_mags和masses数组中的值应该相等,但没有正确对齐。次轴的偏移量在右边,但它应该在左边,以便与主轴上的刻度对齐。
目前,我的代码如下:
absolute_mags = np.array([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14.5])
masses = 10 ** (np.array([0.058, -0.039, -0.136, -0.233, -0.333, -0.463, -0.637, -0.778, -0.867, -0.964, -1.11]))
masses = np.around(masses, 2)
plt.hist(absolute_RP_mags, bins='auto', linewidth=2, hatch='/', edgecolor='k', facecolor='None')
plt.ylabel("number of targets")
plt.xlabel("absolute G_RP magnitude (mag)")
ax1 = plt.gca()
ax1.set_xticks(ticks=absolute_mags,labels=absolute_mags)
ax2 = ax1.twiny()
ax2.set_xticks(ticks=absolute_mags, labels=masses)
ax2.set_xlabel("mass ($M/M_\odot$)")
字符串
此代码生成以下图:
的数据
如何在主轴和次轴上对齐记号?
absolute_RP_mags可以近似为高斯分布,其中μ =9.86406767115786,σ =1.7088087089866282。
2条答案
按热度按时间qlfbtfca1#
我无法复制与您的img相同的图表,但如果IIUC,您需要手动设置主轴和辅助轴的
xticks
,否则它们会自动设置,从而导致一些差异。只需使用set_xticks
来对齐刻度,如下所示:字符串
输出量:
的数据
yfjy0ee72#
我找到了一个适合我的答案!
添加
ax2.set_xlim(ax1.get_xlim())
将刻度线放置在次轴上的正确位置。如果您没有在次轴上绘制数据,则没有任何数据要对齐,因此您需要从主轴绘制轴限制。