mplsoccer is a Python library for plotting soccer/football charts in Matplotlib and loading StatsBomb open-data.

Quick start

Use the package manager pip to install mplsoccer.

pip install mplsoccer

Or install via Anaconda

conda install -c conda-forge mplsoccer

Plot a StatsBomb pitch:

from mplsoccer.pitch import Pitch
pitch = Pitch(pitch_color='grass', line_color='white', stripe=True)
fig, ax = pitch.draw()

What is mplsoccer?

In mplsoccer, you can:

  • plot football/soccer pitches on nine different pitch types

  • plot radar charts

  • plot Nightingale/pizza charts

  • plot bumpy charts for showing changes over time

  • plot arrows, heatmaps, hexbins, scatter, and (comet) lines

  • load StatsBomb data as a tidy dataframe

  • standardize pitch coordinates into a single format

I hope mplsoccer helps you make insightful graphics faster, so you don’t have to build charts from scratch.

Want to help?

I would love the community to get involved in mplsoccer. Take a look at our open-issues for inspiration. Please get in touch at rowlinsonandy@gmail.com or on Twitter to find out more.

Recent changes

View the changelog for a full list of the recent changes to mplsoccer.




mplsoccer was inspired by:

Indices and tables