我在图中绘制了两条线,但是它们起源于两个不同形状的数组,那么我该如何绘制它们的和?
例如在下图中,我具有line1和line2的数据,我怎么能拥有“ line 1 + line 2”?
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2,3],[1,1,1],label='line 1')
plt.plot([1.5,2.5],[2,2],label='line 2')
plt.plot([1,1.5,2,2.5,3],[1,3,3,3,1],label='line 1+lin 2')
plt.legend(loc=1)
plt.show()
答案 0 :(得分:2)
您需要在同一基础上对两个数据集进行插值。然后,您只需将它们加起来。
import numpy as np
import matplotlib.pyplot as plt
x1, y1 = [1,2,3],[1,1,1]
x2, y2 = [1.5,2.5],[2,2]
# get a sorted list of all x values
x = np.unique(np.concatenate((x1,x2)))
# interpolate y1 and y2 on the combined x values
yi1 = np.interp(x, x1, y1, left=0, right=0)
yi2 = np.interp(x, x2, y2, left=0, right=0)
plt.plot(x1, y1, label="Line 1")
plt.plot(x2, y2, label="Line 2")
plt.plot(x, yi1 + yi2, label="Line 1 + Line 2")
plt.legend(loc="upper right")
plt.show()