Построение суммы кривых в pyqtgraph

Я хочу построить график с несколькими кривыми (хотя в этом конкретном примере все графики линейные), а затем построить сумму графиков в качестве дополнительного графика.
Мне было интересно, есть ли встроенный способ сделать это. , а не вычислять для каждой новой точки (x,y) координаты всех других кривых в этой точке и суммировать их.
Вот краткий пример (он выполняется как отдельный скрипт):

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg

app = QtGui.QApplication([])
win = pg.GraphicsWindow(title="For Test")
plot = win.addPlot(title='Test')

#First plot:
x = [1,3,5,7]
y = [1,2,1,2]
curve1 = plot.plot(x=x, y=y, pen='r')
#Second plot
x = [2,4,6,8]
y = [0.5,4,2,2]
curve2 = plot.plot(x=x, y=y, pen='g')

if __name__ == '__main__':
    app.exec_()

Ожидаемый результат примерно такой:
x = [1, 2, 3, 4, 5, 6, 7, 8]
y = [1, ~2, ~4, ~5,5, ~8, ~3,5 , 4, 2]
Эта проблема становится немного сложнее, если есть настоящие кривые. Так есть ли встроенный способ сделать это?


person Arthur.V    schedule 04.08.2015    source источник


Ответы (1)


Сомневаюсь, что для этого есть встроенная функция. У вас есть разные точки на каждой кривой. Что тебе необходимо сделать:

1 - Построить вектор x, общий для обеих кривых. Я предлагаю

np.linspace(min(x1.min(), x2.min(), max(x1.max(), x2.max(), n_points)

2 - Интерполируйте значения y каждой кривой, чтобы найти значения для общего вектора x

3 - Добавьте интерполированные кривые и постройте их

См. этот ответ, чтобы узнать, как интерполировать кривую по известным значениям x и y.

person agomcas    schedule 21.10.2015