Skip to content
Snippets Groups Projects
Commit 94f38d6a authored by Your Name's avatar Your Name
Browse files

Fix

parent f2afbcd7
No related branches found
No related tags found
No related merge requests found
Showing
with 86 additions and 55 deletions
......@@ -8,72 +8,103 @@ main_folder = "./"
scenarios = [name for name in os.listdir(main_folder) if os.path.isdir(os.path.join(main_folder, name))]
print(scenarios)
scenarios = sorted(
scenarios,
key=lambda x: (
x != "no_slicing", # Garante que "no_slicing" venha no final
int(x.split('_')[-1]) if x.startswith('scen_') and x.split('_')[-1].isdigit() else float('inf')
)
)
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 = []
cap_confs = [name for name in os.listdir(scenario_path) if os.path.isdir(os.path.join(scenario_path, name))] ## Configuração da capacidade dos slices
for cap_conf in cap_confs:
ue_dataframes[scenario][cap_conf] = {}
cap_path = scenario_path + '/' + cap_conf
ues = [name for name in os.listdir(cap_path) if os.path.isdir(os.path.join(cap_path, name))]
for ue in ues:
data = []
ue_path = cap_path + '/' + ue + '/' + 'job_1.txt'
##Organização do dataframe
# Caminho de cada usuário
with open(ue_path, 'r') as file:
count = 0
data.append({
"Interval": 0,
"Transfer": 0,
"Bandwidth": 0,
"Jitter": 0,
"Packet loss (%)": 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,
"Packet loss (%)": float(parts[-1].strip("()%"))
})
elif count <= 60:
data.append({
"Interval": count,
"Transfer": parts[4],
"Bandwidth": float(parts[6]),
"Jitter": parts[8] if len(parts) > 6 else None,
"Packet loss (%)": float(parts[-1].strip("()%"))
})
else:
break
print(ue)
ue_dataframes[scenario][cap_conf][ue] = pd.DataFrame(data)
pl_ue1 = []
pl_ue2 = []
ue_path = scenario_path + '/' + ue + '/' + 'job_1.txt'
for scenario in scenarios:
scenario_path = main_folder + scenario
cap_confs = [name for name in os.listdir(scenario_path) if os.path.isdir(os.path.join(scenario_path, name))] ## Configuração da capacidade dos slices
cap_confs = sorted(cap_confs, key=lambda x: (x == 'no_slicing', x))
for cap_conf in cap_confs:
plt.plot(ue_dataframes[scenario][cap_conf]['ue2']["Interval"], ue_dataframes[scenario][cap_conf]['ue2']["Bandwidth"], marker="o", label="UE2", color = "blue")
plt.plot(ue_dataframes[scenario][cap_conf]['ue1']["Interval"], ue_dataframes[scenario][cap_conf]['ue1']["Bandwidth"], marker="o", label="UE2", color = "red")
y_ticks = np.arange(0, max(ue_dataframes[scenario][cap_conf]['ue2']["Bandwidth"].max(),
ue_dataframes[scenario][cap_conf]['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()
pl_ue1.append(ue_dataframes[scenario][cap_conf]['ue1']["Packet loss (%)"].mean())
pl_ue2.append(ue_dataframes[scenario][cap_conf]['ue2']["Packet loss (%)"].mean())
print(ue_path)
# Organização do dataframe
plt.show()
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)
# Configurar a posição das barras no eixo x
x = np.arange(len(cap_confs)) # Posições das scenarios
print(x)
largura = 0.4 # Largura das barras
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()
# Criar as barras
plt.bar(x - largura / 2, pl_ue1, width=largura, label='UE1', color='red') # Barras para UE1
plt.bar(x + largura / 2, pl_ue2, width=largura, label='UE2', color='blue') # Barras para UE2
#Exibe o gráfico
# Adicionar rótulos e título
plt.xlabel('Scenarios')
plt.ylabel('Packet Loss (%)')
plt.title('Packet Loss for each capacity configuration')
plt.xticks(x, cap_confs) # Ajustar rótulos do eixo x
plt.legend() # Adicionar legenda
# Exibir o gráfico
plt.tight_layout()
plt.show()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment