A project to make beautiful visualizations from Strava data. Heavily inspired by the wonderful R library by Markus Volz.
pip install git+git://github.com/colcarroll/strava_calendar.git
First download your data from Strava (see below for how). The last step gives you a zip_path
to the archive with all the data. This is quite slow the first time you run it for a zip file and year (~5mins), but quite fast after that (~5s).
from strava_calendar import plot_calendar
plot_calendar(zip_path=zip_path, year=2018)
You can control how many columns there are, the spacing between months and columns, and the label in the top left:
plot_calendar(zip_path=zip_path, year=2017, n_cols=6, month_gap=1.5, col_gap=1, label='')
You can also plot a single column of weeks, which is pleasant.
plot_calendar(zip_path=zip_path, year=2017, n_cols=1)
If you want to write more custom code, you can give that a shot, too:
import datetime
import matplotlib.pyplot as plt
from strava_calendar import Plotter, get_data
data = get_data(zip_path, 'running', datetime.datetime(2018, 1, 1), datetime.datetime(2019, 1, 1))
plotter = Plotter(data)
fig, ax = plt.subplots(figsize=(9, 6))
fig, ax, offset = plotter.plot_month(year=2018, month=6, fig=fig, ax=ax)
ax.text(0, offset + 4.2, 'Weeee!', fontdict={'fontsize': 32, 'fontweight': 'heavy'}, alpha=0.5)
Downloading your data is a bit of a pain. You migh as well try out this awesome project while you're visualizing your year!
The process for downloading data is also described on the Strava website:
- After logging into Strava, select "Settings" from the main drop-down menu at top right of the screen.
- Select "My Account" from the navigation menu to the left of the screen.
- Under the "Download or Delete Your Account" heading, click the "Get Started" button.
- Under the "Download Request", heading, click the "Request Your Archive" button. Be careful not to delete your account here!
- The archive takes a while to be sent. Download the zipped file to a location whose path you know.