Python matplotlib绘制不同类型数组的两行之和
我在图上画了两条线,但它们来自两个不同形状的数组,我怎么能画出它们的和呢 e、 g.在下图中,我有第1行和第2行的数据,如何才能有“第1行+第2行”Python matplotlib绘制不同类型数组的两行之和,python,matplotlib,Python,Matplotlib,我在图上画了两条线,但它们来自两个不同形状的数组,我怎么能画出它们的和呢 e、 g.在下图中,我有第1行和第2行的数据,如何才能有“第1行+第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
您需要在公共基础上对这两个数据集进行插值。然后你可以简单地把它们加起来
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()
为什么这个
plt.plot([1,1.5,2,2.5,3],[1,3,3,1],label='line 1+lin 2')
代表line 1
和line 2
的总和?@Giorgosmyriantous我想把他们的大酒杯加起来,特别是在1.5到2.5的范围内。对于所示的每个系列,它们的y值是否应该是恒定的?您需要一个足够聪明的算法,将所有值分组到同一类别的整数之间。对我来说并不微不足道me@ReedinationerNot事实上,我的数据要大得多,但没有对齐。我只是做了一个简单的样品。
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()