У меня есть набор данных, который я пытаюсь соединить вместе. У меня есть my_y
значения, которые состоят из нескольких списков.
In [0]: my_y
Out[0]: [array([0.1,1,2,5,7,8,10,20,40,35,20,10]),array([0,1.5,2.3,5.6,7.8,8,12,23,44,35,20,8]),array([0.5,1.5,1.8,5.2,6.5,8,10,15,30,35,22,7]),array([-0.1,1,3,7,9,8,13,25,38,21,18,10]),array([0.3,1,2.1,5,7.5,8,10,25,45,37,24,13])]
У меня также есть некоторые значения, рассчитанные по my_y.
In [0]: Math_output1
Out[0]: [array(20),array(15),array(20),array(15)]
In [0]: Math_output2
Out[0]: [array(22),array(17),array(23),array(18)]
In [0]: Math_output3
Out[0]: [array(25),array(27),array(33),array(24)]
Каждый математический вывод соответствует данным в my_y на основании их индекса. Например, значения, которые соответствуют my_y
[0]: Math_output1
[0], Math_output2
[0] и Math_output3
[0].
Аналогично, my_y
[1] составляют Math_output1
[1], Math_output2
[1] и Math_output3
[1].
Я хочу построить my_y как функцию my_x (фиксированные значения) и добавить штриховые линии в значения x, соответствующие Math_output1
, Math_output2
и Math_output3
.
Я попытался сделать это в цикле for, но понял, что не могу правильно сопоставить my_y
и Math_output
s.
for k in range(len(my_y)):
for a in range(len(Math_output1)):
print('i:', i)
print('a:',a)
plt.plot(my_x,my_y[k])
plt.axvline(x=Math_output1[a], linestyle='--', color='k')
plt.axvline(x=Math_output2[a], linestyle='--', color='k')
plt.axvline(x=Math_output3[a], linestyle='--', color='k')
Это работает, но неправильно соединяет Math_outputs и my_y. Функции print
показывают, почему.
i: 0
0
1
2
i: 1
0
1
2
i: 2
0
1
2
Таким образом, вместо объединения my_y
и Math_outputs с одинаковым индексом, приведенный выше код сопоставляет каждый индекс my_y
с каждым индексом в Math_output
с. В итоге получается график my_y
[i] и последний индекс Math_output
s, Math_outputs
[2].
Любая идея, что я могу сопоставить право my_y
вправо Math_output
s