Files
speedtestingpy/plot_average.py
2025-11-19 00:24:15 +01:00

39 lines
1.7 KiB
Python

import sys
import lib
import numpy as np
time_data, ping_data, jitter_data, up_data, down_data = lib.import_csv(sys.argv[1:])
averaged_data = dict()
for i in range(0, len(time_data)):
hour_truncated_time = time_data[i].replace(year=time_data[0].year, month=time_data[0].month, day=time_data[0].day, hour=time_data[i].hour, minute=0, second=0, microsecond=0)
averaged_data[hour_truncated_time] = [0, 0, 0, 0, 0]
for i in range(0, len(time_data)):
hour_truncated_time = time_data[i].replace(year=time_data[0].year, month=time_data[0].month, day=time_data[0].day, hour=time_data[i].hour, minute=0, second=0, microsecond=0)
averaged_data[hour_truncated_time][0] += ping_data[i]
averaged_data[hour_truncated_time][1] += jitter_data[i]
averaged_data[hour_truncated_time][2] += down_data[i]
averaged_data[hour_truncated_time][3] += up_data[i]
averaged_data[hour_truncated_time][4] += 1
truncated_hours = []
averaged_ping_data = []
averaged_jitter_data = []
averaged_down_data = []
averaged_up_data = []
for date in sorted(averaged_data):
truncated_hours.append(date.hour)
averaged_ping_data.append(averaged_data[date][0] / averaged_data[date][4])
averaged_jitter_data.append(averaged_data[date][1] / averaged_data[date][4])
averaged_down_data.append(averaged_data[date][2] / averaged_data[date][4])
averaged_up_data.append(averaged_data[date][3] / averaged_data[date][4])
xticks = np.arange(0, 23, step=2)
lib.plot(truncated_hours, averaged_down_data, averaged_up_data, 'down', 'up', 'bandwidth.svg', autofmt=False, xticks=xticks)
lib.plot(truncated_hours, averaged_ping_data, averaged_jitter_data, 'ping', 'jitter', 'ping_jitter.svg', autofmt=False, xticks=xticks)