Created
July 5, 2020 22:19
-
-
Save devnano/44bc51758931c1715c7ad6cab4d20aa7 to your computer and use it in GitHub Desktop.
AppStore Sessions Ad-Hoc Python Plots
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pygal | |
import datetime | |
import statistics | |
apple_filename = "rosta_–_duty_calendar-sessions-20161001-20200629.csv" | |
def every_n_dates_criteria(n): | |
return lambda date, data: len(data) == n | |
class PlotParams: | |
def __init__(self, data_point_criteria=None, aggregator=None): | |
self.data_point_criteria = data_point_criteria | |
self.aggregator = aggregator | |
class Data: | |
def __init__(self, dates, data, label): | |
self.dates = dates | |
self.data = data | |
self.label = label | |
class DateRange: | |
def __init__(self, from_date=None, to_date=None): | |
self.from_date = from_date | |
self.to_date = to_date | |
class Criteria: | |
def __init__(self, name, | |
strategy, | |
x_label_formatter=lambda d: f'{d.strftime("%b/%Y")}'): | |
self.name = name | |
self.strategy = strategy | |
self.x_label_formatter = x_label_formatter | |
def apple_data_points(data_point_criteria=lambda date, data: date.day == 1, | |
aggregator=lambda data: max(data), | |
date_range=None): | |
dates = [] | |
sessions = [] | |
users = [] | |
with open(apple_filename) as f: | |
for line in f: | |
data = line.replace("'", "").split(",") | |
try: | |
current_date = datetime.datetime.strptime(data[0], "%m/%d/%y") | |
except ValueError: | |
continue | |
if date_range: | |
if date_range.from_date and current_date < date_range.from_date: | |
continue | |
if date_range.to_date and current_date > date_range.to_date: | |
break | |
date = current_date | |
users.append(int(eval(data[1]))) | |
if data_point_criteria(date, users): | |
sessions.append(aggregator(users)) | |
dates.append(date) | |
users = [] | |
if not sessions and users: | |
sessions.append(aggregator(users)) | |
dates.append(date) | |
return (dates, sessions) | |
def create_plot(title, dates, data, plot_name, x_label_formatter): | |
"""Plot implementation with pygal.""" | |
line_chart = pygal.Line(x_label_rotation=90, fill=True) | |
line_chart.title = title | |
line_chart.x_labels = map(x_label_formatter, dates) | |
for d in data: | |
line_chart.add(d.label, d.data) | |
line_chart.render_to_file(plot_name) | |
if __name__ == "__main__": | |
# Just daily session as indicator by now | |
indicators = {"daily sessions": None} | |
# How to aggregate each period data | |
aggregators = { | |
"min": lambda data: min(data), | |
"max": lambda data: max(data), | |
"avg": lambda data: int(statistics.mean(data)), | |
# # "mode": lambda data: statistics.mode(data), | |
# "median": lambda data: statistics.median(data), | |
# # "sum": lambda data: sum(data) | |
} | |
# Time criteria use to aggregate the data | |
criterias = [ | |
Criteria("monthly", lambda date, data: date.day == 1), | |
Criteria("bimonthly", lambda date, data: len(data) == 30 * 2), | |
Criteria("quarterly", lambda date, data: len(data) == 30 * 3), | |
Criteria("semester", lambda date, data: len(data) == 30 * 6), | |
Criteria("weekly", lambda date, data: len(data) == 7, | |
lambda d: f'{d.strftime("%b/%d/%y")}'), | |
Criteria("fortnight", lambda date, data: len(data) == 14, | |
lambda d: f'{d.strftime("%b/%d/%y")}'), | |
] | |
# Just official AppStore Data. | |
# There's a draft impl of fabric->firebase but is less consistent | |
# and data is only available since 5/2020 | |
sources = { | |
# For now just ignore fabric/firebase sources. | |
# "Fabric_Firebase": data_points, | |
"AppStore": apple_data_points | |
} | |
# Date ranges of interest | |
date_ranges = [ | |
# From start to PT translation | |
DateRange(to_date=datetime.datetime(2019, 10, 9, 0, 0)), | |
# # From start to COVID | |
DateRange(to_date=datetime.datetime(2020, 3, 20, 0, 0)), | |
# From COVID to now 1/7/2020 | |
DateRange(from_date=datetime.datetime(2020, 2, 17, 0, 0)), | |
# # All available data | |
DateRange() | |
] | |
# Multiply parameters to produce the plots: | |
# Source x indicator x aggregator x time criteria x time range | |
for source_k, source_v in sources.items(): | |
for indicator_k, indicator_v in indicators.items(): | |
for aggregator_k, aggregator_v in aggregators.items(): | |
for criteria in criterias: | |
for date_range in date_ranges: | |
# 1. Produce the plot source data | |
dates, daus = source_v( | |
criteria.strategy, aggregator_v, date_range) | |
# 2. Additional plot parameters | |
label = indicator_k.title() | |
dates_range_text = f"{criteria.x_label_formatter(dates[0])} – {criteria.x_label_formatter(dates[-1])}" | |
title = f"{indicator_k}({criteria.name} {aggregator_k}) {dates_range_text}".title( | |
) | |
data = Data(dates, daus, label) | |
# 3. Create the plot | |
create_plot(title, | |
dates, | |
[data], | |
f"{source_k}_{title.replace(' ', '_').replace('/', '_')}.svg", | |
criteria.x_label_formatter) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pygal |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Name | Rosta – Duty Calendar | |
---|---|---|
Start Date | 8/2/16 | |
End Date | 6/29/20 | |
Date | Sessions | |
8/2/17 | 20.0 | |
8/3/17 | 16.0 | |
8/4/17 | 19.0 | |
8/5/17 | 2.0 | |
8/6/17 | 13.0 | |
8/7/17 | 21.0 | |
8/8/17 | 8.0 | |
8/9/17 | 14.0 | |
8/10/17 | 14.0 | |
8/11/17 | 23.0 | |
8/12/17 | 28.0 | |
8/13/17 | 28.0 | |
8/14/17 | 29.0 | |
8/15/17 | 11.0 | |
8/16/17 | 11.0 | |
8/17/17 | 26.0 | |
8/18/17 | 31.0 | |
8/19/17 | 26.0 | |
8/20/17 | 22.0 | |
8/21/17 | 17.0 | |
8/22/17 | 28.0 | |
8/23/17 | 24.0 | |
8/24/17 | 23.0 | |
8/25/17 | 18.0 | |
8/26/17 | 17.0 | |
8/27/17 | 15.0 | |
8/28/17 | 36.0 | |
8/29/17 | 35.0 | |
8/30/17 | 21.0 | |
8/31/17 | 27.0 | |
9/1/17 | 32.0 | |
9/2/17 | 53.0 | |
9/3/17 | 43.0 | |
9/4/17 | 63.0 | |
9/5/17 | 37.0 | |
9/6/17 | 30.0 | |
9/7/17 | 43.0 | |
9/8/17 | 40.0 | |
9/9/17 | 30.0 | |
9/10/17 | 33.0 | |
9/11/17 | 35.0 | |
9/12/17 | 30.0 | |
9/13/17 | 67.0 | |
9/14/17 | 38.0 | |
9/15/17 | 27.0 | |
9/16/17 | 19.0 | |
9/17/17 | 60.0 | |
9/18/17 | 38.0 | |
9/19/17 | 30.0 | |
9/20/17 | 61.0 | |
9/21/17 | 37.0 | |
9/22/17 | 55.0 | |
9/23/17 | 58.0 | |
9/24/17 | 62.0 | |
9/25/17 | 59.0 | |
9/26/17 | 45.0 | |
9/27/17 | 87.0 | |
9/28/17 | 66.0 | |
9/29/17 | 79.0 | |
9/30/17 | 58.0 | |
10/1/17 | 94.0 | |
10/2/17 | 47.0 | |
10/3/17 | 32.0 | |
10/4/17 | 68.0 | |
10/5/17 | 86.0 | |
10/6/17 | 58.0 | |
10/7/17 | 87.0 | |
10/8/17 | 56.0 | |
10/9/17 | 51.0 | |
10/10/17 | 95.0 | |
10/11/17 | 80.0 | |
10/12/17 | 109.0 | |
10/13/17 | 116.0 | |
10/14/17 | 61.0 | |
10/15/17 | 79.0 | |
10/16/17 | 107.0 | |
10/17/17 | 173.0 | |
10/18/17 | 102.0 | |
10/19/17 | 149.0 | |
10/20/17 | 97.0 | |
10/21/17 | 86.0 | |
10/22/17 | 90.0 | |
10/23/17 | 121.0 | |
10/24/17 | 117.0 | |
10/25/17 | 85.0 | |
10/26/17 | 103.0 | |
10/27/17 | 83.0 | |
10/28/17 | 86.0 | |
10/29/17 | 106.0 | |
10/30/17 | 123.0 | |
10/31/17 | 117.0 | |
11/1/17 | 87.0 | |
11/2/17 | 135.0 | |
11/3/17 | 101.0 | |
11/4/17 | 90.0 | |
11/5/17 | 90.0 | |
11/6/17 | 114.0 | |
11/7/17 | 110.0 | |
11/8/17 | 153.0 | |
11/9/17 | 115.0 | |
11/10/17 | 128.0 | |
11/11/17 | 86.0 | |
11/12/17 | 83.0 | |
11/13/17 | 122.0 | |
11/14/17 | 159.0 | |
11/15/17 | 166.0 | |
11/16/17 | 152.0 | |
11/17/17 | 119.0 | |
11/18/17 | 96.0 | |
11/19/17 | 156.0 | |
11/20/17 | 154.0 | |
11/21/17 | 111.0 | |
11/22/17 | 157.0 | |
11/23/17 | 142.0 | |
11/24/17 | 139.0 | |
11/25/17 | 128.0 | |
11/26/17 | 135.0 | |
11/27/17 | 170.0 | |
11/28/17 | 152.0 | |
11/29/17 | 138.0 | |
11/30/17 | 133.0 | |
12/1/17 | 189.0 | |
12/2/17 | 125.0 | |
12/3/17 | 120.0 | |
12/4/17 | 162.0 | |
12/5/17 | 170.0 | |
12/6/17 | 169.0 | |
12/7/17 | 148.0 | |
12/8/17 | 147.0 | |
12/9/17 | 126.0 | |
12/10/17 | 106.0 | |
12/11/17 | 173.0 | |
12/12/17 | 161.0 | |
12/13/17 | 191.0 | |
12/14/17 | 173.0 | |
12/15/17 | 156.0 | |
12/16/17 | 141.0 | |
12/17/17 | 169.0 | |
12/18/17 | 158.0 | |
12/19/17 | 130.0 | |
12/20/17 | 129.0 | |
12/21/17 | 175.0 | |
12/22/17 | 136.0 | |
12/23/17 | 117.0 | |
12/24/17 | 110.0 | |
12/25/17 | 132.0 | |
12/26/17 | 186.0 | |
12/27/17 | 228.0 | |
12/28/17 | 156.0 | |
12/29/17 | 139.0 | |
12/30/17 | 122.0 | |
12/31/17 | 103.0 | |
1/1/18 | 161.0 | |
1/2/18 | 232.0 | |
1/3/18 | 195.0 | |
1/4/18 | 211.0 | |
1/5/18 | 222.0 | |
1/6/18 | 219.0 | |
1/7/18 | 182.0 | |
1/8/18 | 215.0 | |
1/9/18 | 203.0 | |
1/10/18 | 173.0 | |
1/11/18 | 253.0 | |
1/12/18 | 172.0 | |
1/13/18 | 154.0 | |
1/14/18 | 176.0 | |
1/15/18 | 216.0 | |
1/16/18 | 181.0 | |
1/17/18 | 201.0 | |
1/18/18 | 198.0 | |
1/19/18 | 199.0 | |
1/20/18 | 144.0 | |
1/21/18 | 183.0 | |
1/22/18 | 187.0 | |
1/23/18 | 219.0 | |
1/24/18 | 201.0 | |
1/25/18 | 217.0 | |
1/26/18 | 198.0 | |
1/27/18 | 155.0 | |
1/28/18 | 179.0 | |
1/29/18 | 218.0 | |
1/30/18 | 227.0 | |
1/31/18 | 201.0 | |
2/1/18 | 197.0 | |
2/2/18 | 170.0 | |
2/3/18 | 185.0 | |
2/4/18 | 190.0 | |
2/5/18 | 216.0 | |
2/6/18 | 226.0 | |
2/7/18 | 214.0 | |
2/8/18 | 265.0 | |
2/9/18 | 190.0 | |
2/10/18 | 137.0 | |
2/11/18 | 184.0 | |
2/12/18 | 188.0 | |
2/13/18 | 245.0 | |
2/14/18 | 210.0 | |
2/15/18 | 198.0 | |
2/16/18 | 181.0 | |
2/17/18 | 130.0 | |
2/18/18 | 201.0 | |
2/19/18 | 309.0 | |
2/20/18 | 247.0 | |
2/21/18 | 245.0 | |
2/22/18 | 243.0 | |
2/23/18 | 201.0 | |
2/24/18 | 219.0 | |
2/25/18 | 204.0 | |
2/26/18 | 228.0 | |
2/27/18 | 259.0 | |
2/28/18 | 254.0 | |
3/1/18 | 265.0 | |
3/2/18 | 234.0 | |
3/3/18 | 197.0 | |
3/4/18 | 198.0 | |
3/5/18 | 323.0 | |
3/6/18 | 235.0 | |
3/7/18 | 277.0 | |
3/8/18 | 213.0 | |
3/9/18 | 248.0 | |
3/10/18 | 195.0 | |
3/11/18 | 220.0 | |
3/12/18 | 257.0 | |
3/13/18 | 300.0 | |
3/14/18 | 293.0 | |
3/15/18 | 300.0 | |
3/16/18 | 339.0 | |
3/17/18 | 210.0 | |
3/18/18 | 222.0 | |
3/19/18 | 292.0 | |
3/20/18 | 326.0 | |
3/21/18 | 258.0 | |
3/22/18 | 228.0 | |
3/23/18 | 212.0 | |
3/24/18 | 206.0 | |
3/25/18 | 238.0 | |
3/26/18 | 273.0 | |
3/27/18 | 243.0 | |
3/28/18 | 208.0 | |
3/29/18 | 237.0 | |
3/30/18 | 170.0 | |
3/31/18 | 231.0 | |
4/1/18 | 192.0 | |
4/2/18 | 266.0 | |
4/3/18 | 258.0 | |
4/4/18 | 280.0 | |
4/5/18 | 244.0 | |
4/6/18 | 252.0 | |
4/7/18 | 200.0 | |
4/8/18 | 238.0 | |
4/9/18 | 228.0 | |
4/10/18 | 267.0 | |
4/11/18 | 318.0 | |
4/12/18 | 266.0 | |
4/13/18 | 223.0 | |
4/14/18 | 263.0 | |
4/15/18 | 266.0 | |
4/16/18 | 294.0 | |
4/17/18 | 348.0 | |
4/18/18 | 377.0 | |
4/19/18 | 284.0 | |
4/20/18 | 240.0 | |
4/21/18 | 267.0 | |
4/22/18 | 271.0 | |
4/23/18 | 247.0 | |
4/24/18 | 303.0 | |
4/25/18 | 275.0 | |
4/26/18 | 251.0 | |
4/27/18 | 242.0 | |
4/28/18 | 222.0 | |
4/29/18 | 227.0 | |
4/30/18 | 292.0 | |
5/1/18 | 260.0 | |
5/2/18 | 344.0 | |
5/3/18 | 257.0 | |
5/4/18 | 226.0 | |
5/5/18 | 227.0 | |
5/6/18 | 218.0 | |
5/7/18 | 292.0 | |
5/8/18 | 304.0 | |
5/9/18 | 378.0 | |
5/10/18 | 331.0 | |
5/11/18 | 282.0 | |
5/12/18 | 219.0 | |
5/13/18 | 209.0 | |
5/14/18 | 264.0 | |
5/15/18 | 273.0 | |
5/16/18 | 313.0 | |
5/17/18 | 289.0 | |
5/18/18 | 224.0 | |
5/19/18 | 233.0 | |
5/20/18 | 276.0 | |
5/21/18 | 327.0 | |
5/22/18 | 381.0 | |
5/23/18 | 318.0 | |
5/24/18 | 342.0 | |
5/25/18 | 337.0 | |
5/26/18 | 228.0 | |
5/27/18 | 252.0 | |
5/28/18 | 361.0 | |
5/29/18 | 378.0 | |
5/30/18 | 346.0 | |
5/31/18 | 356.0 | |
6/1/18 | 306.0 | |
6/2/18 | 240.0 | |
6/3/18 | 317.0 | |
6/4/18 | 320.0 | |
6/5/18 | 408.0 | |
6/6/18 | 384.0 | |
6/7/18 | 365.0 | |
6/8/18 | 317.0 | |
6/9/18 | 279.0 | |
6/10/18 | 253.0 | |
6/11/18 | 298.0 | |
6/12/18 | 319.0 | |
6/13/18 | 314.0 | |
6/14/18 | 390.0 | |
6/15/18 | 294.0 | |
6/16/18 | 289.0 | |
6/17/18 | 328.0 | |
6/18/18 | 339.0 | |
6/19/18 | 407.0 | |
6/20/18 | 370.0 | |
6/21/18 | 376.0 | |
6/22/18 | 320.0 | |
6/23/18 | 296.0 | |
6/24/18 | 324.0 | |
6/25/18 | 470.0 | |
6/26/18 | 442.0 | |
6/27/18 | 400.0 | |
6/28/18 | 354.0 | |
6/29/18 | 300.0 | |
6/30/18 | 249.0 | |
7/1/18 | 303.0 | |
7/2/18 | 353.0 | |
7/3/18 | 388.0 | |
7/4/18 | 368.0 | |
7/5/18 | 342.0 | |
7/6/18 | 263.0 | |
7/7/18 | 237.0 | |
7/8/18 | 312.0 | |
7/9/18 | 355.0 | |
7/10/18 | 358.0 | |
7/11/18 | 375.0 | |
7/12/18 | 341.0 | |
7/13/18 | 346.0 | |
7/14/18 | 312.0 | |
7/15/18 | 314.0 | |
7/16/18 | 376.0 | |
7/17/18 | 369.0 | |
7/18/18 | 342.0 | |
7/19/18 | 368.0 | |
7/20/18 | 323.0 | |
7/21/18 | 284.0 | |
7/22/18 | 296.0 | |
7/23/18 | 411.0 | |
7/24/18 | 450.0 | |
7/25/18 | 342.0 | |
7/26/18 | 396.0 | |
7/27/18 | 386.0 | |
7/28/18 | 299.0 | |
7/29/18 | 272.0 | |
7/30/18 | 415.0 | |
7/31/18 | 394.0 | |
8/1/18 | 404.0 | |
8/2/18 | 413.0 | |
8/3/18 | 287.0 | |
8/4/18 | 248.0 | |
8/5/18 | 312.0 | |
8/6/18 | 430.0 | |
8/7/18 | 446.0 | |
8/8/18 | 349.0 | |
8/9/18 | 397.0 | |
8/10/18 | 375.0 | |
8/11/18 | 335.0 | |
8/12/18 | 418.0 | |
8/13/18 | 431.0 | |
8/14/18 | 395.0 | |
8/15/18 | 336.0 | |
8/16/18 | 485.0 | |
8/17/18 | 385.0 | |
8/18/18 | 342.0 | |
8/19/18 | 293.0 | |
8/20/18 | 399.0 | |
8/21/18 | 414.0 | |
8/22/18 | 389.0 | |
8/23/18 | 403.0 | |
8/24/18 | 346.0 | |
8/25/18 | 315.0 | |
8/26/18 | 327.0 | |
8/27/18 | 452.0 | |
8/28/18 | 413.0 | |
8/29/18 | 373.0 | |
8/30/18 | 350.0 | |
8/31/18 | 351.0 | |
9/1/18 | 292.0 | |
9/2/18 | 403.0 | |
9/3/18 | 469.0 | |
9/4/18 | 480.0 | |
9/5/18 | 402.0 | |
9/6/18 | 426.0 | |
9/7/18 | 361.0 | |
9/8/18 | 294.0 | |
9/9/18 | 388.0 | |
9/10/18 | 511.0 | |
9/11/18 | 400.0 | |
9/12/18 | 460.0 | |
9/13/18 | 396.0 | |
9/14/18 | 330.0 | |
9/15/18 | 314.0 | |
9/16/18 | 286.0 | |
9/17/18 | 389.0 | |
9/18/18 | 431.0 | |
9/19/18 | 483.0 | |
9/20/18 | 376.0 | |
9/21/18 | 402.0 | |
9/22/18 | 349.0 | |
9/23/18 | 319.0 | |
9/24/18 | 462.0 | |
9/25/18 | 510.0 | |
9/26/18 | 529.0 | |
9/27/18 | 427.0 | |
9/28/18 | 537.0 | |
9/29/18 | 370.0 | |
9/30/18 | 348.0 | |
10/1/18 | 500.0 | |
10/2/18 | 396.0 | |
10/3/18 | 480.0 | |
10/4/18 | 476.0 | |
10/5/18 | 449.0 | |
10/6/18 | 353.0 | |
10/7/18 | 433.0 | |
10/8/18 | 448.0 | |
10/9/18 | 449.0 | |
10/10/18 | 449.0 | |
10/11/18 | 511.0 | |
10/12/18 | 406.0 | |
10/13/18 | 413.0 | |
10/14/18 | 349.0 | |
10/15/18 | 444.0 | |
10/16/18 | 531.0 | |
10/17/18 | 681.0 | |
10/18/18 | 470.0 | |
10/19/18 | 487.0 | |
10/20/18 | 406.0 | |
10/21/18 | 397.0 | |
10/22/18 | 556.0 | |
10/23/18 | 508.0 | |
10/24/18 | 486.0 | |
10/25/18 | 514.0 | |
10/26/18 | 454.0 | |
10/27/18 | 448.0 | |
10/28/18 | 419.0 | |
10/29/18 | 642.0 | |
10/30/18 | 524.0 | |
10/31/18 | 561.0 | |
11/1/18 | 514.0 | |
11/2/18 | 453.0 | |
11/3/18 | 424.0 | |
11/4/18 | 334.0 | |
11/5/18 | 551.0 | |
11/6/18 | 540.0 | |
11/7/18 | 619.0 | |
11/8/18 | 535.0 | |
11/9/18 | 507.0 | |
11/10/18 | 382.0 | |
11/11/18 | 423.0 | |
11/12/18 | 640.0 | |
11/13/18 | 512.0 | |
11/14/18 | 575.0 | |
11/15/18 | 471.0 | |
11/16/18 | 488.0 | |
11/17/18 | 437.0 | |
11/18/18 | 477.0 | |
11/19/18 | 588.0 | |
11/20/18 | 604.0 | |
11/21/18 | 569.0 | |
11/22/18 | 532.0 | |
11/23/18 | 580.0 | |
11/24/18 | 399.0 | |
11/25/18 | 478.0 | |
11/26/18 | 637.0 | |
11/27/18 | 647.0 | |
11/28/18 | 649.0 | |
11/29/18 | 563.0 | |
11/30/18 | 601.0 | |
12/1/18 | 374.0 | |
12/2/18 | 487.0 | |
12/3/18 | 587.0 | |
12/4/18 | 562.0 | |
12/5/18 | 526.0 | |
12/6/18 | 545.0 | |
12/7/18 | 527.0 | |
12/8/18 | 420.0 | |
12/9/18 | 386.0 | |
12/10/18 | 505.0 | |
12/11/18 | 518.0 | |
12/12/18 | 505.0 | |
12/13/18 | 522.0 | |
12/14/18 | 459.0 | |
12/15/18 | 322.0 | |
12/16/18 | 372.0 | |
12/17/18 | 461.0 | |
12/18/18 | 524.0 | |
12/19/18 | 460.0 | |
12/20/18 | 412.0 | |
12/21/18 | 521.0 | |
12/22/18 | 396.0 | |
12/23/18 | 314.0 | |
12/24/18 | 265.0 | |
12/25/18 | 283.0 | |
12/26/18 | 528.0 | |
12/27/18 | 558.0 | |
12/28/18 | 449.0 | |
12/29/18 | 350.0 | |
12/30/18 | 372.0 | |
12/31/18 | 391.0 | |
1/1/19 | 437.0 | |
1/2/19 | 552.0 | |
1/3/19 | 527.0 | |
1/4/19 | 422.0 | |
1/5/19 | 348.0 | |
1/6/19 | 452.0 | |
1/7/19 | 554.0 | |
1/8/19 | 560.0 | |
1/9/19 | 599.0 | |
1/10/19 | 523.0 | |
1/11/19 | 613.0 | |
1/12/19 | 437.0 | |
1/13/19 | 443.0 | |
1/14/19 | 604.0 | |
1/15/19 | 557.0 | |
1/16/19 | 567.0 | |
1/17/19 | 564.0 | |
1/18/19 | 498.0 | |
1/19/19 | 383.0 | |
1/20/19 | 467.0 | |
1/21/19 | 625.0 | |
1/22/19 | 610.0 | |
1/23/19 | 530.0 | |
1/24/19 | 613.0 | |
1/25/19 | 568.0 | |
1/26/19 | 481.0 | |
1/27/19 | 482.0 | |
1/28/19 | 635.0 | |
1/29/19 | 597.0 | |
1/30/19 | 546.0 | |
1/31/19 | 578.0 | |
2/1/19 | 542.0 | |
2/2/19 | 456.0 | |
2/3/19 | 437.0 | |
2/4/19 | 535.0 | |
2/5/19 | 598.0 | |
2/6/19 | 531.0 | |
2/7/19 | 523.0 | |
2/8/19 | 510.0 | |
2/9/19 | 515.0 | |
2/10/19 | 504.0 | |
2/11/19 | 604.0 | |
2/12/19 | 620.0 | |
2/13/19 | 536.0 | |
2/14/19 | 503.0 | |
2/15/19 | 497.0 | |
2/16/19 | 391.0 | |
2/17/19 | 443.0 | |
2/18/19 | 624.0 | |
2/19/19 | 584.0 | |
2/20/19 | 536.0 | |
2/21/19 | 634.0 | |
2/22/19 | 528.0 | |
2/23/19 | 441.0 | |
2/24/19 | 439.0 | |
2/25/19 | 590.0 | |
2/26/19 | 546.0 | |
2/27/19 | 525.0 | |
2/28/19 | 568.0 | |
3/1/19 | 490.0 | |
3/2/19 | 486.0 | |
3/3/19 | 563.0 | |
3/4/19 | 590.0 | |
3/5/19 | 588.0 | |
3/6/19 | 703.0 | |
3/7/19 | 615.0 | |
3/8/19 | 548.0 | |
3/9/19 | 433.0 | |
3/10/19 | 524.0 | |
3/11/19 | 655.0 | |
3/12/19 | 635.0 | |
3/13/19 | 687.0 | |
3/14/19 | 588.0 | |
3/15/19 | 624.0 | |
3/16/19 | 566.0 | |
3/17/19 | 470.0 | |
3/18/19 | 638.0 | |
3/19/19 | 680.0 | |
3/20/19 | 612.0 | |
3/21/19 | 639.0 | |
3/22/19 | 648.0 | |
3/23/19 | 491.0 | |
3/24/19 | 575.0 | |
3/25/19 | 619.0 | |
3/26/19 | 625.0 | |
3/27/19 | 655.0 | |
3/28/19 | 611.0 | |
3/29/19 | 629.0 | |
3/30/19 | 488.0 | |
3/31/19 | 567.0 | |
4/1/19 | 727.0 | |
4/2/19 | 746.0 | |
4/3/19 | 689.0 | |
4/4/19 | 719.0 | |
4/5/19 | 592.0 | |
4/6/19 | 609.0 | |
4/7/19 | 474.0 | |
4/8/19 | 617.0 | |
4/9/19 | 713.0 | |
4/10/19 | 639.0 | |
4/11/19 | 619.0 | |
4/12/19 | 635.0 | |
4/13/19 | 440.0 | |
4/14/19 | 459.0 | |
4/15/19 | 692.0 | |
4/16/19 | 630.0 | |
4/17/19 | 616.0 | |
4/18/19 | 600.0 | |
4/19/19 | 438.0 | |
4/20/19 | 449.0 | |
4/21/19 | 497.0 | |
4/22/19 | 598.0 | |
4/23/19 | 707.0 | |
4/24/19 | 677.0 | |
4/25/19 | 759.0 | |
4/26/19 | 553.0 | |
4/27/19 | 512.0 | |
4/28/19 | 567.0 | |
4/29/19 | 722.0 | |
4/30/19 | 583.0 | |
5/1/19 | 613.0 | |
5/2/19 | 607.0 | |
5/3/19 | 675.0 | |
5/4/19 | 507.0 | |
5/5/19 | 501.0 | |
5/6/19 | 625.0 | |
5/7/19 | 702.0 | |
5/8/19 | 752.0 | |
5/9/19 | 757.0 | |
5/10/19 | 585.0 | |
5/11/19 | 462.0 | |
5/12/19 | 523.0 | |
5/13/19 | 794.0 | |
5/14/19 | 721.0 | |
5/15/19 | 694.0 | |
5/16/19 | 710.0 | |
5/17/19 | 602.0 | |
5/18/19 | 560.0 | |
5/19/19 | 510.0 | |
5/20/19 | 674.0 | |
5/21/19 | 726.0 | |
5/22/19 | 677.0 | |
5/23/19 | 660.0 | |
5/24/19 | 672.0 | |
5/25/19 | 478.0 | |
5/26/19 | 601.0 | |
5/27/19 | 795.0 | |
5/28/19 | 735.0 | |
5/29/19 | 713.0 | |
5/30/19 | 669.0 | |
5/31/19 | 606.0 | |
6/1/19 | 482.0 | |
6/2/19 | 558.0 | |
6/3/19 | 782.0 | |
6/4/19 | 679.0 | |
6/5/19 | 625.0 | |
6/6/19 | 652.0 | |
6/7/19 | 605.0 | |
6/8/19 | 618.0 | |
6/9/19 | 607.0 | |
6/10/19 | 713.0 | |
6/11/19 | 736.0 | |
6/12/19 | 728.0 | |
6/13/19 | 615.0 | |
6/14/19 | 666.0 | |
6/15/19 | 537.0 | |
6/16/19 | 538.0 | |
6/17/19 | 668.0 | |
6/18/19 | 693.0 | |
6/19/19 | 758.0 | |
6/20/19 | 689.0 | |
6/21/19 | 634.0 | |
6/22/19 | 527.0 | |
6/23/19 | 546.0 | |
6/24/19 | 766.0 | |
6/25/19 | 751.0 | |
6/26/19 | 817.0 | |
6/27/19 | 682.0 | |
6/28/19 | 635.0 | |
6/29/19 | 494.0 | |
6/30/19 | 543.0 | |
7/1/19 | 787.0 | |
7/2/19 | 757.0 | |
7/3/19 | 698.0 | |
7/4/19 | 690.0 | |
7/5/19 | 605.0 | |
7/6/19 | 496.0 | |
7/7/19 | 538.0 | |
7/8/19 | 670.0 | |
7/9/19 | 728.0 | |
7/10/19 | 642.0 | |
7/11/19 | 574.0 | |
7/12/19 | 628.0 | |
7/13/19 | 541.0 | |
7/14/19 | 536.0 | |
7/15/19 | 661.0 | |
7/16/19 | 640.0 | |
7/17/19 | 593.0 | |
7/18/19 | 673.0 | |
7/19/19 | 642.0 | |
7/20/19 | 571.0 | |
7/21/19 | 485.0 | |
7/22/19 | 789.0 | |
7/23/19 | 707.0 | |
7/24/19 | 644.0 | |
7/25/19 | 673.0 | |
7/26/19 | 645.0 | |
7/27/19 | 505.0 | |
7/28/19 | 565.0 | |
7/29/19 | 801.0 | |
7/30/19 | 753.0 | |
7/31/19 | 773.0 | |
8/1/19 | 721.0 | |
8/2/19 | 672.0 | |
8/3/19 | 489.0 | |
8/4/19 | 510.0 | |
8/5/19 | 631.0 | |
8/6/19 | 641.0 | |
8/7/19 | 732.0 | |
8/8/19 | 613.0 | |
8/9/19 | 653.0 | |
8/10/19 | 503.0 | |
8/11/19 | 578.0 | |
8/12/19 | 691.0 | |
8/13/19 | 660.0 | |
8/14/19 | 591.0 | |
8/15/19 | 600.0 | |
8/16/19 | 615.0 | |
8/17/19 | 486.0 | |
8/18/19 | 540.0 | |
8/19/19 | 373.0 | |
8/20/19 | 753.0 | |
8/21/19 | 766.0 | |
8/22/19 | 759.0 | |
8/23/19 | 640.0 | |
8/24/19 | 473.0 | |
8/25/19 | 582.0 | |
8/26/19 | 736.0 | |
8/27/19 | 801.0 | |
8/28/19 | 697.0 | |
8/29/19 | 768.0 | |
8/30/19 | 770.0 | |
8/31/19 | 651.0 | |
9/1/19 | 572.0 | |
9/2/19 | 820.0 | |
9/3/19 | 716.0 | |
9/4/19 | 732.0 | |
9/5/19 | 815.0 | |
9/6/19 | 844.0 | |
9/7/19 | 529.0 | |
9/8/19 | 534.0 | |
9/9/19 | 809.0 | |
9/10/19 | 780.0 | |
9/11/19 | 777.0 | |
9/12/19 | 679.0 | |
9/13/19 | 713.0 | |
9/14/19 | 570.0 | |
9/15/19 | 606.0 | |
9/16/19 | 680.0 | |
9/17/19 | 737.0 | |
9/18/19 | 683.0 | |
9/19/19 | 692.0 | |
9/20/19 | 664.0 | |
9/21/19 | 580.0 | |
9/22/19 | 637.0 | |
9/23/19 | 809.0 | |
9/24/19 | 825.0 | |
9/25/19 | 863.0 | |
9/26/19 | 923.0 | |
9/27/19 | 804.0 | |
9/28/19 | 597.0 | |
9/29/19 | 758.0 | |
9/30/19 | 809.0 | |
10/1/19 | 901.0 | |
10/2/19 | 817.0 | |
10/3/19 | 765.0 | |
10/4/19 | 723.0 | |
10/5/19 | 635.0 | |
10/6/19 | 615.0 | |
10/7/19 | 962.0 | |
10/8/19 | 863.0 | |
10/9/19 | 907.0 | |
10/10/19 | 774.0 | |
10/11/19 | 783.0 | |
10/12/19 | 623.0 | |
10/13/19 | 667.0 | |
10/14/19 | 908.0 | |
10/15/19 | 871.0 | |
10/16/19 | 825.0 | |
10/17/19 | 758.0 | |
10/18/19 | 680.0 | |
10/19/19 | 535.0 | |
10/20/19 | 438.0 | |
10/21/19 | 736.0 | |
10/22/19 | 680.0 | |
10/23/19 | 719.0 | |
10/24/19 | 715.0 | |
10/25/19 | 685.0 | |
10/26/19 | 581.0 | |
10/27/19 | 619.0 | |
10/28/19 | 799.0 | |
10/29/19 | 902.0 | |
10/30/19 | 842.0 | |
10/31/19 | 710.0 | |
11/1/19 | 705.0 | |
11/2/19 | 555.0 | |
11/3/19 | 597.0 | |
11/4/19 | 823.0 | |
11/5/19 | 923.0 | |
11/6/19 | 952.0 | |
11/7/19 | 754.0 | |
11/8/19 | 807.0 | |
11/9/19 | 656.0 | |
11/10/19 | 627.0 | |
11/11/19 | 863.0 | |
11/12/19 | 849.0 | |
11/13/19 | 828.0 | |
11/14/19 | 807.0 | |
11/15/19 | 779.0 | |
11/16/19 | 675.0 | |
11/17/19 | 704.0 | |
11/18/19 | 845.0 | |
11/19/19 | 824.0 | |
11/20/19 | 960.0 | |
11/21/19 | 792.0 | |
11/22/19 | 773.0 | |
11/23/19 | 641.0 | |
11/24/19 | 797.0 | |
11/25/19 | 997.0 | |
11/26/19 | 995.0 | |
11/27/19 | 812.0 | |
11/28/19 | 867.0 | |
11/29/19 | 847.0 | |
11/30/19 | 805.0 | |
12/1/19 | 708.0 | |
12/2/19 | 1040.0 | |
12/3/19 | 931.0 | |
12/4/19 | 932.0 | |
12/5/19 | 965.0 | |
12/6/19 | 690.0 | |
12/7/19 | 693.0 | |
12/8/19 | 713.0 | |
12/9/19 | 979.0 | |
12/10/19 | 920.0 | |
12/11/19 | 920.0 | |
12/12/19 | 816.0 | |
12/13/19 | 781.0 | |
12/14/19 | 549.0 | |
12/15/19 | 726.0 | |
12/16/19 | 863.0 | |
12/17/19 | 828.0 | |
12/18/19 | 849.0 | |
12/19/19 | 801.0 | |
12/20/19 | 758.0 | |
12/21/19 | 662.0 | |
12/22/19 | 650.0 | |
12/23/19 | 735.0 | |
12/24/19 | 613.0 | |
12/25/19 | 617.0 | |
12/26/19 | 846.0 | |
12/27/19 | 843.0 | |
12/28/19 | 826.0 | |
12/29/19 | 685.0 | |
12/30/19 | 875.0 | |
12/31/19 | 714.0 | |
1/1/20 | 802.0 | |
1/2/20 | 1323.0 | |
1/3/20 | 1101.0 | |
1/4/20 | 831.0 | |
1/5/20 | 996.0 | |
1/6/20 | 1115.0 | |
1/7/20 | 1157.0 | |
1/8/20 | 1178.0 | |
1/9/20 | 1204.0 | |
1/10/20 | 1157.0 | |
1/11/20 | 813.0 | |
1/12/20 | 885.0 | |
1/13/20 | 1072.0 | |
1/14/20 | 1233.0 | |
1/15/20 | 1095.0 | |
1/16/20 | 1074.0 | |
1/17/20 | 967.0 | |
1/18/20 | 816.0 | |
1/19/20 | 842.0 | |
1/20/20 | 1206.0 | |
1/21/20 | 1099.0 | |
1/22/20 | 1073.0 | |
1/23/20 | 1051.0 | |
1/24/20 | 1050.0 | |
1/25/20 | 781.0 | |
1/26/20 | 866.0 | |
1/27/20 | 1243.0 | |
1/28/20 | 1250.0 | |
1/29/20 | 1195.0 | |
1/30/20 | 1193.0 | |
1/31/20 | 1085.0 | |
2/1/20 | 824.0 | |
2/2/20 | 889.0 | |
2/3/20 | 1300.0 | |
2/4/20 | 1021.0 | |
2/5/20 | 1060.0 | |
2/6/20 | 1087.0 | |
2/7/20 | 955.0 | |
2/8/20 | 884.0 | |
2/9/20 | 912.0 | |
2/10/20 | 1203.0 | |
2/11/20 | 1193.0 | |
2/12/20 | 1136.0 | |
2/13/20 | 998.0 | |
2/14/20 | 1033.0 | |
2/15/20 | 845.0 | |
2/16/20 | 842.0 | |
2/17/20 | 1236.0 | |
2/18/20 | 1206.0 | |
2/19/20 | 1152.0 | |
2/20/20 | 1219.0 | |
2/21/20 | 1021.0 | |
2/22/20 | 787.0 | |
2/23/20 | 941.0 | |
2/24/20 | 984.0 | |
2/25/20 | 1017.0 | |
2/26/20 | 1232.0 | |
2/27/20 | 1171.0 | |
2/28/20 | 1255.0 | |
2/29/20 | 870.0 | |
3/1/20 | 909.0 | |
3/2/20 | 1152.0 | |
3/3/20 | 1286.0 | |
3/4/20 | 1158.0 | |
3/5/20 | 1224.0 | |
3/6/20 | 1050.0 | |
3/7/20 | 790.0 | |
3/8/20 | 858.0 | |
3/9/20 | 1202.0 | |
3/10/20 | 1211.0 | |
3/11/20 | 1227.0 | |
3/12/20 | 1115.0 | |
3/13/20 | 956.0 | |
3/14/20 | 828.0 | |
3/15/20 | 664.0 | |
3/16/20 | 835.0 | |
3/17/20 | 755.0 | |
3/18/20 | 623.0 | |
3/19/20 | 678.0 | |
3/20/20 | 607.0 | |
3/21/20 | 365.0 | |
3/22/20 | 411.0 | |
3/23/20 | 532.0 | |
3/24/20 | 519.0 | |
3/25/20 | 539.0 | |
3/26/20 | 542.0 | |
3/27/20 | 599.0 | |
3/28/20 | 468.0 | |
3/29/20 | 462.0 | |
3/30/20 | 731.0 | |
3/31/20 | 637.0 | |
4/1/20 | 600.0 | |
4/2/20 | 549.0 | |
4/3/20 | 565.0 | |
4/4/20 | 460.0 | |
4/5/20 | 548.0 | |
4/6/20 | 608.0 | |
4/7/20 | 594.0 | |
4/8/20 | 641.0 | |
4/9/20 | 588.0 | |
4/10/20 | 478.0 | |
4/11/20 | 429.0 | |
4/12/20 | 427.0 | |
4/13/20 | 586.0 | |
4/14/20 | 614.0 | |
4/15/20 | 546.0 | |
4/16/20 | 605.0 | |
4/17/20 | 548.0 | |
4/18/20 | 530.0 | |
4/19/20 | 523.0 | |
4/20/20 | 599.0 | |
4/21/20 | 584.0 | |
4/22/20 | 587.0 | |
4/23/20 | 679.0 | |
4/24/20 | 670.0 | |
4/25/20 | 510.0 | |
4/26/20 | 497.0 | |
4/27/20 | 628.0 | |
4/28/20 | 633.0 | |
4/29/20 | 633.0 | |
4/30/20 | 661.0 | |
5/1/20 | 547.0 | |
5/2/20 | 497.0 | |
5/3/20 | 515.0 | |
5/4/20 | 581.0 | |
5/5/20 | 585.0 | |
5/6/20 | 681.0 | |
5/7/20 | 656.0 | |
5/8/20 | 639.0 | |
5/9/20 | 480.0 | |
5/10/20 | 509.0 | |
5/11/20 | 684.0 | |
5/12/20 | 667.0 | |
5/13/20 | 706.0 | |
5/14/20 | 658.0 | |
5/15/20 | 604.0 | |
5/16/20 | 514.0 | |
5/17/20 | 513.0 | |
5/18/20 | 652.0 | |
5/19/20 | 743.0 | |
5/20/20 | 670.0 | |
5/21/20 | 734.0 | |
5/22/20 | 687.0 | |
5/23/20 | 598.0 | |
5/24/20 | 534.0 | |
5/25/20 | 731.0 | |
5/26/20 | 678.0 | |
5/27/20 | 760.0 | |
5/28/20 | 831.0 | |
5/29/20 | 714.0 | |
5/30/20 | 641.0 | |
5/31/20 | 628.0 | |
6/1/20 | 794.0 | |
6/2/20 | 829.0 | |
6/3/20 | 760.0 | |
6/4/20 | 802.0 | |
6/5/20 | 822.0 | |
6/6/20 | 593.0 | |
6/7/20 | 641.0 | |
6/8/20 | 791.0 | |
6/9/20 | 837.0 | |
6/10/20 | 851.0 | |
6/11/20 | 845.0 | |
6/12/20 | 764.0 | |
6/13/20 | 605.0 | |
6/14/20 | 593.0 | |
6/15/20 | 868.0 | |
6/16/20 | 773.0 | |
6/17/20 | 917.0 | |
6/18/20 | 830.0 | |
6/19/20 | 789.0 | |
6/20/20 | 581.0 | |
6/21/20 | 602.0 | |
6/22/20 | 834.0 | |
6/23/20 | 853.0 | |
6/24/20 | 917.0 | |
6/25/20 | 923.0 | |
6/26/20 | 799.0 | |
6/27/20 | 666.0 | |
6/28/20 | 673.0 | |
6/29/20 | 952.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment