codereview_stats.txt
次の形式のデータを含むファイルがあります。上部の日付は、データがファイルに書き込まれた最後の日付を表し、データを収集する方法のために表示されます。
18-09-2013
dd-mm-yyyy, questions, answers, %answered, users, visitors/day
15-09-2013,9381,15913,88,26972,8466
16-09-2013,9413,15949,88,27015,8466
17-09-2013,9426,15968,88,27041,8871
18-09-2013,9439,15995,88,27082,8934
データをプロットするために matlotlib を使用しています。しかし、それを行う前に、日付、質問、回答などを別々のリストに分ける必要があります。現在、get_data()
以下に示すように関数でそれを行っています。ご覧のとおり、ここには多くのリスト内包表記があります。データを多くのリストに分割する簡単な方法はありますか?
#! python3
from matplotlib import pyplot as plt
from datetime import datetime as dt
def get_data():
with open('codereview_stats.txt') as f:
data = [line for line in f]
data = [line[:-1].split(',') for line in data[3:]]
dates = [dt.strptime(line[0], '%d-%m-%Y') for line in data]
ques = [int(line[1]) for line in data]
ans = [int(line[2]) for line in data]
perc = [int(line[3]) for line in data]
users = [int(line[4]) for line in data]
visits = [int(line[5]) for line in data]
return dates, ques, ans, perc, users, visits
def show_plot(dates, ques, ans, perc, users, visits):
plt.plot_date(dates, visits, '.', linestyle = '-')
plt.grid(True)
plt.setp(plt.xticks()[1], rotation=30)
plt.show()
show_plot(*get_data())