На основании вашей информации я создал минимальный пример, который должен воспроизвести вашу проблему (в противном случае вы, возможно, не объяснили проблему / параметры достаточно подробно). Я призываю вас самим создать такой пример в следующий раз, поскольку ваш вопрос, вероятно, будет проигнорирован без него. Пример выглядит так:
import numpy as np
import matplotlib.pyplot as plt
N = 24*60
Q_Heiz_TT = 0.5
lp_heating_list = np.random.rand(N)
lp_heating_list = lp_heating_list*Q_Heiz_TT
heating_datalist = []
for d in range(N):
heating_datalist.append((d, lp_heating_list[d]))
xs_heat = [x[0] for x in heating_datalist]
ys_heat = [x[1] for x in heating_datalist]
plt.plot(xs_heat, ys_heat)
plt.show()
Что здесь происходит? Для каждого d in range(N)
(с N = 24*60
, то есть с каждой минутой дня) вы строите все значения от до * включительно lp_heating_list[d]
против d
. Это связано с тем, что к heating_datalist
добавляется текущее значение d
и соответствующее значение в lp_heating_list
. Вы получаете 24x60 = 1440 линий, которые частично перекрывают друг друга. В зависимости от того, как ваш бэкэнд обрабатывает вещи, он может быть очень медленным и начать выглядеть грязно.
Намного лучше было бы просто использовать
plt.plot(range(timesteps), lp_heating_list)
plt.show()
Который строит только одну линию вместо 1440.