diff --git a/first_test.py b/first_test.py new file mode 100644 index 0000000..a708d2b --- /dev/null +++ b/first_test.py @@ -0,0 +1,73 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Данные: (первый человек, второй человек, время1, время2) +data = [ + ("Елисей", "Ника", "01:53.68", "00:46.85"), + ("Ника", "Вова", "00:57.28", "01:05.67"), + ("Вова", "Елисей","00:38.35", "00:34.74"), + ("Дима", "Саша", "00:57.45", "00:52.90"), + ("Саша", "Дима", "00:25.69", "00:55.85"), +] + +def time_to_seconds(t): + # поддерживает формат mm:ss.xx + mm, rest = t.split(":") + ss = float(rest) + return int(mm) * 60 + ss + +def seconds_to_time(sec): + mm = int(sec // 60) + ss = sec % 60 + return f"{mm:02d}:{ss:05.2f}" + +# Подготовка данных +labels = [f"{a} → {b}" for a, b, _, _ in data] +t1 = np.array([time_to_seconds(x[2]) for x in data]) +t2 = np.array([time_to_seconds(x[3]) for x in data]) + +y = np.arange(len(data)) + +# Визуальный стиль +plt.style.use("seaborn-v0_8-whitegrid") +fig, ax = plt.subplots(figsize=(11, 6)) + +color1 = "#4C78A8" +color2 = "#F58518" + +bars1 = ax.barh(y, t1, color=color1, edgecolor="none", label="Первое время") +bars2 = ax.barh(y, t2, left=t1, color=color2, edgecolor="none", label="Второе время") + +# Подписи на сегментах +for i, (b1, b2, a1, a2) in enumerate(zip(bars1, bars2, t1, t2)): + ax.text( + b1.get_x() + b1.get_width() / 2, + b1.get_y() + b1.get_height() / 2, + seconds_to_time(a1), + ha="center", va="center", color="white", fontsize=10, fontweight="bold" + ) + ax.text( + b2.get_x() + b2.get_width() / 2, + b2.get_y() + b2.get_height() / 2, + seconds_to_time(a2), + ha="center", va="center", color="white", fontsize=10, fontweight="bold" + ) + +# Подписи осей и оформление +ax.set_yticks(y) +ax.set_yticklabels(labels, fontsize=11) +ax.invert_yaxis() +ax.set_xlabel("Время, сек.") +ax.set_title("Сравнение суммарного времени выполнения задания", fontsize=15, pad=12) +ax.legend(loc="lower right") + +# Сетка и рамки +ax.spines["top"].set_visible(False) +ax.spines["right"].set_visible(False) +ax.grid(axis="x", linestyle="--", alpha=0.4) + +plt.tight_layout() + +fig.savefig("first_test.png") + +plt.show() diff --git a/no_interface.png b/no_interface.png deleted file mode 100644 index c7401fb..0000000 Binary files a/no_interface.png and /dev/null differ