Skip to main content

strava_py

Create artistic visualisations with your exercise data (Python version).

This is a port of the R strava package to Python.

Installation

Install via pip:

python3 -m pip install stravavis

For development:

git clone https://github.com/marcusvolz/strava_py
cd strava_py
pip install -e .

Then run from the terminal:

stravavis --help

How to use

If your activity data is in a folder called activities, run the following command:

stravavis activities

By default, this will create output images prefixed strava-.

If you have an activities.csv file:

stravavis activities --activities_path activities.csv

To only map activities contained within a bounding box:

stravavis activities --bbox 24.782802,59.922486,25.254511,60.29785

Or as a shortcut, save bounding-box coordinates to a file:

echo 24.782802,59.922486,25.254511,60.29785 > helsinki.bbox
stravavis activities --bbox helsinki.bbox

To only plot certain visualisations:

stravavis activities --plot map facets landscape

Examples

Facets

A plot of activities as small multiples. The concept behind this plot was originally inspired by Sisu.

facets

Map

A map of activities viewed in plan.

map

Elevations

A plot of activity elevation profiles as small multiples.

map

Landscape

Elevation profiles superimposed.

map

Calendar

Calendar heatmap showing daily activity distance, using the calmap package. Requires "activities.csv" from the bulk Strava export.

map

Dumbbell plot

Activities shown as horizontal lines by time of day and day of year, facetted by year. Requires "activities.csv" from the bulk Strava export.

map

Bulk export from Strava

The process for downloading data is described on the Strava website here: [https://support.strava.com/hc/en-us/articles/216918437-Exporting-your-Data-and-Bulk-Export#Bulk], but in essence, do the following:

  1. Log in to Strava
  2. Select "Settings" from the main drop-down menu at top right of the screen
  3. Select "My Account" from the navigation menu to the left of the screen.
  4. Under the "Download or Delete Your Account" heading, click the "Get Started" button.
  5. Under the "Download Request", heading, click the "Request Your Archive" button. Don't click anything else on that page, i.e. particularly not the "Request Account Deletion" button.
  6. Wait for an email to be sent
  7. Click the link in email to download zipped folder containing activities
  8. Unzip files

Programmatic use

The package can also be used programmatically. The following code snippets demonstrate how to use the package to create the visualisations.

The main function for importing and processing activity files expects a path to a directory of unzipped GPX and / or FIT files. If required, the fit2gpx package provides useful tools for pre-processing bulk files exported from Strava, e.g. unzipping activity files (see Use Case 3: Strava Bulk Export Tools).

df = process_data("<path to folder with GPX and / or FIT files>")

Some plots use the "activities.csv" file from the Strava bulk export zip. For those plots, create an "activities" dataframe using the following function:

activities = process_activities("<path to activities.csv file>")

Plot activities as small multiples

plot_facets(df, output_file = 'plot.png')

Plot activity map

plot_map(df, lon_min=None, lon_max= None, lat_min=None, lat_max=None,
             alpha=0.3, linewidth=0.3, output_file="map.png")

Plot elevations

plot_elevations(df, output_file = 'elevations.png')

Plot landscape

plot_landscape(df, output_file = 'landscape.png')

Plot calendar

plot_calendar(activities, year_min=2015, year_max=2017, max_dist=50,
              fig_height=9, fig_width=15, output_file="calendar.png")

Plot dumbbell

plot_dumbbell(activities, year_min=2012, year_max=2015, local_timezone='Australia/Melbourne',
              fig_height=34, fig_width=34, output_file="dumbbell.png")

Metadata

Release files for stravavis 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stravavis 0.6.0
File Size Uploaded
stravavis-0.6.0.tar.gz 223.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stravavis 0.6.0
File Interpreter ABI Platform
stravavis-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 237.2 kB

Release files / stravavis-0.6.0.tar.gz

Download URL stravavis-0.6.0.tar.gz
Size 223.8 kB
Tags Source
SHA-256 checksum
How to use checksums
55ab2f5a7123d6820888ca950f2616a5e8fc40a37a39b88696a083f1b2635459
BLAKE2b-256 checksum
How to use checksums
e8ad00fab60dc545323dfaac6707a6968e62c338d22e8b8c154a68fce354ee3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 29, 2025.

Transparency log

Release files / stravavis-0.6.0-py3-none-any.whl

Download URL stravavis-0.6.0-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02617c210919b4c115965b181e2a7f26b79f4c3120932dcc89d7b1a267878ed8
BLAKE2b-256 checksum
How to use checksums
f7ef715eecffa4c296d1c110f8ab75687be31ac355b1658af26734d14476c452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 29, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page