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