根据索引在相同位置绘制两个数据集

时间:2018-12-14 19:17:39

标签: python matplotlib plot

我试图在不同的y轴上绘制两个数据集(分别称为HeightTemperature)。

两个数据集的长度相同。

两个数据集通过第三数据集RH链接在一起。

我曾尝试使用matplotlib通过twiny()绘制数据,但是我正在努力将两个数据集在同一图上对齐。

这是我要对齐的图。

enter image description here

图中的水平黑线定义为从Height找到的0°C度线,用于测试绘制时两个数据集是否对齐。他们不。黑线与Temperature的0°C滴答之间存在明显的差异。

我希望不是将两个y轴彼此独立地改变,而是将HeightTemperature中的每个索引绘制在图中相同的y位置。

这是我用来创建情节的代码:

#Define number of subplots sharing y axis
f, ax1 = plt.subplots()

ax1.minorticks_on()
ax1.grid(which='major',axis='both',c='grey')

#Set axis parameters
ax1.set_ylabel('Height $(km)$')
ax1.set_ylim([np.nanmin(Height), np.nanmax(Height)])

#Plot RH
ax1.plot(RH, Height, label='Original', lw=0.5)

ax1.set_xlabel('RH $(\%)$')

ax2 = ax1.twinx()

ax2.plot(RH, Temperature, label='Original', lw=0.5, c='black')

ax2.set_ylabel('Temperature ($^\circ$C)')

ax2.set_ylim([np.nanmin(Temperature), np.nanmax(Temperature)])

任何对此的帮助将是惊人的。谢谢。

1 个答案:

答案 0 :(得分:1)

也许气氛错了。 :)

听起来您正在尝试将两个y轴对齐为特定值。你为什么做这个?高度与温度之间的关系是非线性的,因此,我认为您正在为混淆的图表做好准备。您绘制的任何特定线只能针对一个垂直轴进行解释。

如果需要,我认为您将被迫在y轴的范围内“做一些数学运算”。该链接可能会有所帮助:

align scales