2026-rff_mp/nehoroshevaa/docs/data_task1/plot.py
2026-04-29 18:05:19 +03:00

51 lines
1.1 KiB
Python

import csv
import matplotlib.pyplot as plt
from collections import defaultdict
data = []
with open("results.csv", "r") as f:
reader = csv.reader(f)
next(reader) # header
for row in reader:
structure, order, insert, find, delete = row
data.append((structure, order, float(insert), float(find), float(delete)))
def group(metric_index):
result = defaultdict(list)
for s, o, ins, f, d in data:
key = (s, o)
result[key].append([ins, f, d][metric_index])
return result
def save_plot(metric_name, index, filename):
grouped = group(index)
plt.figure()
labels = []
for (structure, order), values in grouped.items():
label = f"{structure}-{order}"
labels.append(label)
plt.plot(values, label=label)
plt.title(metric_name)
plt.xlabel("Run")
plt.ylabel("Time (sec)")
plt.legend()
plt.savefig(filename, dpi=300, bbox_inches="tight")
plt.close()
save_plot("INSERT TIME", 0, "insert.png")
save_plot("FIND TIME", 1, "find.png")
save_plot("DELETE TIME", 2, "delete.png")
print("Графики сохранены: insert.png, find.png, delete.png")