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") |