pyFTSex/service/api/generate.py

30 lines
1.3 KiB
Python
Raw Normal View History

2024-08-15 12:15:32 +04:00
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")