Matplotlib辅助log x轴的值递减,主x轴线性增加

lxkprmvk  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(102)

我一直在尝试使用matplotlib的辅助x轴函数来生成一个图,但遇到了困难。我正在研究参数相对于高度(线性缩放)和柱密度(对数缩放)的演变。列密度轴是从我所期望的向后出来的。
绘制与高度的关系图没有问题,但是当我试图添加一个辅助x轴来表示列密度时,问题就出现了。从高度(a)到柱密度(n)的函数如下:

n = integral(n_0 exp(-m*a) da)

字符串
其中n_0m是正数。因此,增加高度意味着降低柱密度。我想这就是为什么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不允许我包含图像,因为我是新来的。
与柱密度的函数工作正常,但柱密度轴向后(即,柱密度随着高度的增加而增加,而它应该减少)。有什么想法吗?我试过反转主轴,反转次轴,调整轴刻度标签,但这些都不起作用。

n7taea2i

n7taea2i1#

当你说你尝试反转主轴/次轴时,这是否意味着你尝试用invert函数反转列密度轴?

ax2.invert()

字符串
反转后,副轴应显示柱密度随高度增加而减小。

相关问题