Pyplot:如何添加与第一个x轴的y值相对应的第二个x轴?

时间:2019-02-25 21:12:09

标签: matplotlib

我有3个相等长度的数据数组,它们代表物理量:分数半径(r / R),分数质量(m / M)和一些物理参数(p)。

r/R   m/M   P

r1    m1    p1
r2    m2    p2
.     .     .
.     .     .

r / R和m / M没有功能关系。

我想绘制P与r / R的关系图,但是在第二个x轴上,刻度线的m / M值对应于P的相同值。

我尝试使用twiny():

ax.plot(r/r0, P, c='blue')
ax2 = ax.twiny()
ax2.plot(m/m0, P,c='red')

但是结果是,m / M值的刻度对应于P(附有模糊图像)的不同值

如何使两个x轴上的刻度线对齐,但m / M值是否与为r / R绘制的相同P值相对应?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果r/Rm/M之间没有关系,则可以定义一组新的刻度线,然后手动给刻度线标签。

new_tick_locations = np.array([0, .2, 1])
ax2.set_xticks(new_tick_locations)
ax2.set_xticklabels(('m1', 'm2', ...))