Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import pandas as pd
import matplotlib.pyplot as plt
import os
import numpy as np
# Leitura do arquivo
main_folder = "./"
scenarios = [name for name in os.listdir(main_folder) if os.path.isdir(os.path.join(main_folder, name))]
print(scenarios)
ue_dataframes = {}
for scenario in scenarios:
ue_dataframes[scenario] = {}
scenario_path = main_folder + scenario
ues = [name for name in os.listdir(scenario_path) if os.path.isdir(os.path.join(scenario_path, name))]
for ue in ues:
data = []
# Caminho de cada usuário
ue_path = scenario_path + '/' + ue + '/' + 'job_1.txt'
print(ue_path)
# Organização do dataframe
with open(ue_path, 'r') as file:
count = 0
data.append({
"Interval": 0,
"Transfer": 0,
"Bandwidth": 0,
"Jitter": 0,
"Lost/Total Datagrams": 0
})
for line in file:
if "[ 3]" in line and "sec" in line and "MBytes" in line:
parts = line.split()
count += 1
if count < 10:
data.append({
"Interval": count,
"Transfer": parts[5],
"Bandwidth": float(parts[7]),
"Jitter": parts[9] if len(parts) > 6 else None,
"Lost/Total Datagrams": parts[-2] if '/' in parts [-2] else parts[-3] + parts[-2]
})
elif count <= 60:
data.append({
"Interval": count,
"Transfer": parts[4],
"Bandwidth": float(parts[6]),
"Jitter": parts[8] if len(parts) > 6 else None,
"Lost/Total Datagrams": parts[-2] if '/' in parts [-2] else parts[-3] + parts[-2]
})
else:
break
# Criação do DataFrame
ue_dataframes[scenario][ue] = pd.DataFrame(data)
print(ue_dataframes['no_slicing']['ue2']["Bandwidth"])
for scenario in scenarios:
plt.plot(ue_dataframes[scenario]['ue2']["Interval"], ue_dataframes[scenario]['ue2']["Bandwidth"], marker="o", label="Bandwidth", color = "blue")
plt.plot(ue_dataframes[scenario]['ue1']["Interval"], ue_dataframes[scenario]['ue1']["Bandwidth"], marker="o", label="Bandwidth", color = "red")
y_ticks = np.arange(0, max(ue_dataframes[scenario]['ue2']["Bandwidth"].max(),
ue_dataframes[scenario]['ue1']["Bandwidth"].max()) + 10, 2) # Intervalo de 2 Mbps
plt.yticks(y_ticks) # Define os valores do eixo Y com intervalos mais detalhados
plt.title(scenario)
plt.xlabel("Time (s)")
plt.ylabel("Bandwidth (Mbps)")
plt.grid(True)
plt.legend()
plt.tight_layout()
#Exibe o gráfico
plt.show()