Skip to content

Commit f121626

Browse files
committed
Append PySvn_examples/commits__draw_plot__by_top5_authors.py
1 parent 6f28abd commit f121626

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
__author__ = 'ipetrash'
5+
6+
7+
import pandas as pd
8+
from datetime import datetime
9+
10+
# Название текущего файла без '.py'
11+
import os
12+
plot_title = os.path.basename(__file__)[:-3]
13+
14+
import matplotlib.pyplot as plt
15+
fig = plt.figure(1)
16+
fig.suptitle(plot_title, fontsize=14, fontweight='bold')
17+
ax = fig.add_subplot(111)
18+
19+
from analys_commits import get_log_list_by_author
20+
author_by_log = get_log_list_by_author()
21+
22+
list_top5_author_by_log = sorted(author_by_log.items(), key=lambda item: len(item[1]), reverse=True)[:5]
23+
24+
# Добавление на график информации о авторах
25+
for author, logs in list_top5_author_by_log:
26+
# Сбор коммитов за месяц/год
27+
records = [datetime(log.date.year, log.date.month, 1) for log in logs]
28+
29+
df = pd.DataFrame(data=records, columns=['year_month'])
30+
df_month = pd.DataFrame({'count': df.groupby("year_month").size()}).reset_index()
31+
ax.plot(df_month['year_month'], df_month['count'], label=author)
32+
33+
ax.legend()
34+
ax.grid()
35+
ax.set_title('Commits')
36+
ax.set_xlabel('Date')
37+
ax.set_ylabel('Count')
38+
39+
plt.gcf().autofmt_xdate()
40+
41+
plt.show()

0 commit comments

Comments
 (0)