40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
"""
|
|
Скрипт для создания таблицы результатов в виде изображения
|
|
Запуск: python make_tables.py
|
|
"""
|
|
|
|
import matplotlib.pyplot as plt
|
|
import os
|
|
|
|
os.makedirs('docs/data', exist_ok=True)
|
|
|
|
data = [
|
|
['LinkedList', 'случайный', 0.0037545, 0.00000962, 0.0000079],
|
|
['HashTable', 'случайный', 0.015088, 0.0001646, 0.00009824],
|
|
['BST', 'случайный', 0.026280, 0.0002592, 0.00016984],
|
|
['LinkedList', 'отсортированный', 0.0017544, 0.00000858, 0.00000294],
|
|
['HashTable', 'отсортированный', 0.011369, 0.00014016, 0.00005878],
|
|
['BST', 'отсортированный', 4.930788, 0.047126, 0.023013],
|
|
]
|
|
|
|
fig, ax = plt.subplots(figsize=(12, 5))
|
|
ax.axis('tight')
|
|
ax.axis('off')
|
|
|
|
columns = ['Структура', 'Режим', 'Вставка (10000)', 'Поиск (110)', 'Удаление (50)']
|
|
table = ax.table(cellText=data, colLabels=columns, loc='center', cellLoc='center')
|
|
|
|
table.auto_set_font_size(False)
|
|
table.set_fontsize(10)
|
|
table.scale(1.2, 1.5)
|
|
|
|
for i, row in enumerate(data):
|
|
if row[0] == 'BST' and row[2] > 1:
|
|
table[(i+1, 2)].set_facecolor('#ffcccc')
|
|
table[(i+1, 2)].set_text_props(weight='bold')
|
|
|
|
plt.title('Результаты экспериментов (среднее время в секундах)', fontsize=14, fontweight='bold', pad=20)
|
|
plt.savefig('docs/data/table_results.png', dpi=200, bbox_inches='tight', facecolor='white')
|
|
plt.close()
|
|
|
|
print("Таблица сохранена: docs/data/table_results.png") |