У меня есть два списка: data и Given_x_axis
data=[[0.05, 3200], [0.1, 2000], [0.12, 1200], [0.13, 2000], [0.21, 1800], [0.25, 2800], [0.27, 1500]]
given_x_axis=[0.05, 0.07, 0.09, 0.11, 0.13, 0.15, 0.17, 0.19, 0.21, 0.23, 0.25, 0.27, 0.29, 0.31, 0.33, 0.35]
Я хочу построить диаграмму шага с кумулятивной суммой, подобной этой,
x,y=map(list, zip(*np.cumsum(data, axis=0)))
plt.step(x,y)
, но используя вместо него данный_x_axisпо оси x
Я попытался определить функцию, которая воссоздает новый список накопленных значений на основе данного_x_axis
def update_x_axis(data, given_x_axis):
cumulated_values=[]
value_each_step=0
for n,x in enumerate(given_x_axis):
for d in data:
if d[0]<=x:
value_each_step=value_each_step+d[1]
cumulated_values.append(value_each_step)
return [given_x_axis,cumulated_values]
Но новый список накопленных значений по оси y не кажетсячтобы быть правильным.Я ожидаю, что update_x_axis (data, Given_x_axis) вернет
[0.05, 0.07, 0.09, 0.11, 0.13, 0.15, 0.17, 0.19, 0.21, 0.23, 0.25, 0.27, 0.29, 0.31, 0.33, 0.35],
[3200, 3200, 3200, 5200, 6400, 8400....]]
Как я могу изменить определенную функцию, чтобы сделать это?