matplotlib绘制不同类型数组的两行之和

时间:2019-03-21 21:33:46

标签: python matplotlib

我在图中绘制了两条线,但是它们起源于两个不同形状的数组,那么我该如何绘制它们的和?

例如在下图中,我具有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()

enter image description here

1 个答案:

答案 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()

enter image description here