import math import numpy as np import pandas as pd from matplotlib import pyplot as plt def generate_sine_series(length=100, amplitude=1, frequency=0.5, phase=0, offset=0): """ Генерация временного ряда в виде синусоиды. :param length: Длина временного ряда (количество точек). :param amplitude: Амплитуда синусоиды. :param frequency: Частота синусоиды. :param phase: Фазовый сдвиг синусоиды (в радианах). :param offset: Смещение (сдвиг по вертикали) синусоиды. :return: Pandas DataFrame с временным рядом. """ # Создаем индекс для DataFrame times = range(length) # Генерируем значения синусоиды values = [amplitude * np.sin(2*np.pi/frequency * index + phase) + offset for index in times] # Возвращаем DataFrame с временным рядом return pd.DataFrame(values, index=times, columns=['value']) if __name__ == '__main__': temp = generate_sine_series(length=500, frequency=50, amplitude=100) plt.plot(temp) plt.savefig("images/plot.png")