我有四个一维列表:X1、Y1、X2、Y2。
- X1 和 Y1 各有 203 个数据点。
- X2 和 Y2 各有 1532 个数据点。
- X1 和 X2 的间隔不同,但都测量时间。
我想绘制 Y1 与 Y2 的图表。
一旦我得到插值数据,我就可以很好地绘制,但想不出如何插值数据。我已经思考并研究了几个小时,但无法弄清楚。我不介意线性插值,但就是想不出办法。
我有四个一维列表:X1、Y1、X2、Y2。
我想绘制 Y1 与 Y2 的图表。
一旦我得到插值数据,我就可以很好地绘制,但想不出如何插值数据。我已经思考并研究了几个小时,但无法弄清楚。我不介意线性插值,但就是想不出办法。
我认为这就是你想要的:
import numpy as np
import matplotlib.pyplot as plt
# first data set
X1 = np.linspace(0,1,203)
Y1 = np.sin(X1)
# second data set
X2 = np.linspace(0, 0.5, 1532)
Y2 = np.cos(X2)
# get interpolated values of Y1 evaluated at X2
Y1_interp = np.interp(X2, X1, Y1)
# plot interpolated Y1 vs Y2
plt.plot(Y1_interp, Y2)
plt.show()
如果你使用 matplotlib,你可以调用plot(X1, Y1, 'bo', X2, Y2, 'r+')
. 根据需要更改格式,但它可以很好地处理不同的长度。您可以提供两个以上,没有任何问题。