activity.py 936 B

1234567891011121314151617181920212223242526
  1. import matplotlib.pyplot as plt
  2. import os
  3. async def reformat_to_dd_mm_yyyy(date: str) -> str:
  4. yyyy_mm_dd_list = date.split('-')
  5. dd_mm_yyyy_list = [yyyy_mm_dd_list[2], yyyy_mm_dd_list[1], yyyy_mm_dd_list[0]]
  6. dd_mm_yyy_str = '.'.join(dd_mm_yyyy_list)
  7. return dd_mm_yyy_str[:-5]
  8. async def get_user_activity_diagram(dates_and_answers_stats):
  9. dates_and_answers_stats = dates_and_answers_stats[-10:]
  10. dates = [await reformat_to_dd_mm_yyyy(str(i[0])) for i in dates_and_answers_stats]
  11. answers = [i[1] for i in dates_and_answers_stats]
  12. fig, ax = plt.subplots()
  13. ax.set_title(f"Статистика по активности", fontsize=20)
  14. ax.set_xlabel('Дата')
  15. ax.set_ylabel('Решено задач')
  16. ax.bar(dates, answers)
  17. plt.savefig('data/temp_task_files/activity.png')
  18. byte_img = open('data/temp_task_files/activity.png', mode='rb').read()
  19. plt.close()
  20. return byte_img