我一直在尝试使用matplotlib的辅助x轴函数来生成一个图,但遇到了困难。我正在研究参数相对于高度(线性缩放)和柱密度(对数缩放)的演变。列密度轴是从我所期望的向后出来的。
绘制与高度的关系图没有问题,但是当我试图添加一个辅助x轴来表示列密度时,问题就出现了。从高度(a
)到柱密度(n
)的函数如下:
n = integral(n_0 exp(-m*a) da)
字符串
其中n_0
和m
是正数。因此,增加高度意味着降低柱密度。我想这就是为什么matplotlib会被抛出一个循环。我现在的代码如下:
fig = plt.figure(figsize=(8,6))
plt.rcParams['font.size']=14
ax1 = fig.add_subplot(111)
alts = column_density_to_altitude(cds)
ax1.plot(alts, f0_hplus_cd[0,:], c='navy', label='F$^0$(E=1 keV)')
ax1.plot(alts, f0_hplus_cd[1,:], c='blue', label='F$^0$(E=2 keV)')
ax1.plot(alts, f0_hplus_cd[2,:], c='skyblue', label='F$^0$(E=3 keV)')
ax1.legend()
ax1.set_title('Evolution of ENA Fraction vs. Altitude')
ax1.set_ylabel('Neutral Percentange [%]')
ax1.set_xlabel('Altitude [km]')
ax2 = ax1.secondary_xaxis(-0.2, functions=(calculate_column_density, column_density_to_altitude))
ax2.set_xscale('log')
ax2.set_xlabel('Column Density [cm$^{-2}$]')
plt.tight_layout()
plt.show() `
型
StackExchange不允许我包含图像,因为我是新来的。
与柱密度的函数工作正常,但柱密度轴向后(即,柱密度随着高度的增加而增加,而它应该减少)。有什么想法吗?我试过反转主轴,反转次轴,调整轴刻度标签,但这些都不起作用。
1条答案
按热度按时间n7taea2i1#
当你说你尝试反转主轴/次轴时,这是否意味着你尝试用invert函数反转列密度轴?
字符串
反转后,副轴应显示柱密度随高度增加而减小。