30 lines
1.3 KiB
Python
30 lines
1.3 KiB
Python
|
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")
|