Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from csv import reader
- from collections import OrderedDict
- from datetime import datetime
- from matplotlib import pyplot
- from pprint import pprint
- def plot_dates_minutes(data):
- sessions = [datetime.strptime(cell[0], '%m/%d/%Y %H:%M') for cell in data[1::]]
- lengths = [int(cell[1]) for cell in data[1::]]
- pyplot.bar(sessions, lengths)
- pyplot.show()
- def plot_day(data):
- sessions = OrderedDict.fromkeys(['Sunday',
- 'Monday',
- 'Tuesday',
- 'Wednesday',
- 'Thursday',
- 'Friday',
- 'Saturday'])
- for row in data[1::]:
- day_of_week = datetime.strptime(row[0], '%m/%d/%Y %H:%M')
- if sessions[day_of_week.strftime('%A')]:
- sessions[day_of_week.strftime('%A')] += int(row[1])
- else:
- sessions[day_of_week.strftime('%A')] = int(row[1])
- pyplot.bar(range(len(sessions)), sessions.values(), align='center')
- pyplot.xticks(range(len(sessions)), list(sessions.keys()))
- pyplot.show()
- def plot_years(data):
- sessions = OrderedDict()
- for row in data[1::]:
- day_of_week = datetime.strptime(row[0], '%m/%d/%Y %H:%M')
- if sessions.get(day_of_week.year):
- sessions[day_of_week.year] += int(row[1])
- else:
- sessions[day_of_week.year] = int(row[1])
- pyplot.bar(range(len(sessions)), sessions.values(), align='center')
- pyplot.xticks(range(len(sessions)), list(sessions.keys()))
- pyplot.show()
- def plot_years_months_full(data):
- # sessions = OrderedDict()
- sessions = OrderedDict.fromkeys(['{:02d}/{}'.format(month, year) for year in range(14, 18)
- for month in range(1, 13)])
- for month in sessions:
- sessions[month] = 0
- for row in data[1::]:
- day_of_week = datetime.strptime(row[0], '%m/%d/%Y %H:%M')
- month_day = day_of_week.strftime('%m/%y')
- if sessions.get(month_day):
- sessions[month_day] += int(row[1])
- else:
- sessions[month_day] = int(row[1])
- pyplot.bar(range(len(sessions)), sessions.values(), align='center')
- pyplot.xticks(range(len(sessions)), list(sessions.keys()))
- pyplot.show()
- def plot_and_show_years(data):
- date_range = [datetime.strptime(cell[0], '%m/%d/%Y %H:%M') for cell in data[1::]]
- years = [curdate.year for curdate in date_range]
- year_set = sorted(set(years))
- years_dict = OrderedDict.fromkeys(year_set)
- for year in years_dict:
- years_dict[year] = OrderedDict.fromkeys(['{:02d}'.format(month) for month in range(1, 13)])
- for month in years_dict[year]:
- years_dict[year][month] = 0
- for row in data[1::]:
- current_date = datetime.strptime(row[0], '%m/%d/%Y %H:%M')
- month_day = current_date.strftime('%m')
- if current_date.year == year:
- years_dict[current_date.year][month_day] += int(row[1])
- pyplot.bar(range(len(years_dict[year])), years_dict[year].values(), align='center')
- pyplot.title(year)
- pyplot.ylabel('Meditation Minutes')
- pyplot.xlabel('Month')
- pyplot.xticks(range(len(years_dict[year])), list(years_dict[year].keys()))
- pyplot.show()
- with open('insight_sessions_export.csv', 'r') as f:
- sheet = list(reader(f))
- # plot_dates_minutes(sheet)
- # plot_day(sheet)
- # plot_years(sheet)
- # plot_years_months_full(sheet)
- plot_and_show_years(sheet)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement