Как нарисовать функцию плотности вероятности и кумулятивную функцию распределения в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как нарисовать функцию плотности вероятности и кумулятивную функцию распределения в Python?

Сообщение Anonymous »

Я пытаюсь нарисовать функцию плотности вероятности и функцию кумулятивного распределения для моих данных из файла журнала в Python.
Данные в файле журнала выглядят следующим образом:

Код: Выделить всё

  # seconds.nanoseconds+offset(sequence)
1737119268.154152577+1.009023e-03(0)
1737119268.174213704+1.055868e-03(1)
1737119268.194189758+9.929340e-04(2)
1737119268.214228223+1.148472e-03(3)
1737119268.234281484+1.086814e-03(4)
1737119268.254280558+1.110649e-03(5)
1737119268.274280203+1.066759e-03(6)
1737119268.294279759+1.261670e-03(7)
1737119268.314287395+1.231778e-03(8)
1737119268.334195574+9.443450e-04(9)
1737119268.354297130+9.879940e-04(10)
1737119268.374272817+1.080131e-03(11)
Вот код:

Код: Выделить всё

import matplotlib.pyplot as plt
from datetime import datetime, timezone
import numpy as np
import pandas as pd
from pandas import DataFrame

timestamps = []
sequences = []

log_Name = 'test_rtt_25-01-17_13-07-41_values5_rate50.log'
log_Path = "/home/ubuntu/results-25-01-09-docker/"
true_Path = log_Path + log_Name
with open(true_Path, "r") as f:
for line in f:
if not line.startswith('#'):
time_part, seq_part = line.strip().split('(')
base, offset = time_part.split('+')
print(base)
print(offset)
total_seconds = float(base) + float(offset)
print(total_seconds)
timestamps.append(total_seconds)

seq = int(seq_part[:-1])
print(seq)
sequences.append(seq)
Временные метки выглядят следующим образом:

Код: Выделить всё

   [1737119268.1551616,
1737119268.1752696,
1737119268.1951828,
1737119268.2153766,
1737119268.2353683,
1737119268.2553911,
1737119268.275347,
1737119268.2955415,
1737119268.315519,
1737119268.33514,
1737119268.3552852]
А последовательности выглядят так:

Код: Выделить всё

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Я хочу нарисовать функцию плотности вероятности и функцию кумулятивного распределения для временных меток и последовательностей.
Пока я пробую это, но ничего не получается. это действительно не работает.

Код: Выделить всё

source = {sequences, timestamps}
df = pd.DataFrame(source)
df.sort_values(by = timestamps, inplace=True)
df_mean = np.mean(df[timestamps])
df_std = np.std(df[timestamps])
pdf = stats.norm.pdf(df[timestamps], df_mean, df_std)
plt.savefig('/home/ubuntu/BA/')
Я хочу знать, как это сделать.

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»