diff --git a/SolovevDD/docs/data/1-st exersize/LinkedListPhoneBook.py b/SolovevDD/docs/data/1-st exersize/LinkedListPhoneBook.py index fa3afac..0cb7da5 100644 --- a/SolovevDD/docs/data/1-st exersize/LinkedListPhoneBook.py +++ b/SolovevDD/docs/data/1-st exersize/LinkedListPhoneBook.py @@ -230,4 +230,29 @@ def run_experiments(): print(f"\nРезультаты сохранены в {filepath}") return all_results + + def plot_results(csv_path="docs/data/results.csv"): + import pandas as pd + df = pd.read_csv(csv_path) + summary = df.groupby(["Структура", "Режим", "Операция"])["Время (сек)"].mean().reset_index() + for op in ["вставка", "поиск", "удаление"]: + op_data = summary[summary["Операция"] == op] + plt.figure(figsize=(10, 6)) + x_labels = [] + y_values = [] + for _, row in op_data.iterrows(): + label = f"{row['Структура']}\n({row['Режим']})" + x_labels.append(label) + y_values.append(row["Время (сек)"]) + plt.bar(x_labels, y_values, color=['#4C72B0', '#55A868', '#C44E52'] * 2) + plt.title(f"Среднее время операции: {op}") + plt.ylabel("Время (сек)") + plt.xticks(rotation=45) + plt.tight_layout() + plt.savefig(f"docs/data/graph_{op}.png") + print(f"График сохранён: docs/data/graph_{op}.png") + +if __name__ == "__main__": + run_experiments() + plot_results() \ No newline at end of file