Matplotlib сюжет сумма двух строк разного типа массивов - PullRequest
0 голосов
/ 22 марта 2019

У меня есть две линии, нанесенные на график, но они происходят из двух разных форм массивов, как я могу затем изобразить их сумму?

Например, на рисунке ниже, у меня есть данные line1 и line2Как я могу иметь "строка 1 + строка 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 Ответ

2 голосов
/ 22 марта 2019

Вам необходимо интерполировать оба набора данных на общих основаниях. Тогда вы можете просто добавить их.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...