mplsoccer_dev Profile Banner
mplsoccer_dev Profile
mplsoccer_dev

@mplsoccer_dev

2,919
Followers
1,296
Following
155
Media
694
Statuses

mplsoccer developer @numberstorm . sharing new updates and your ⚽ viz using @matplotlib

Joined August 2022
Don't wanna be here? Send us removal request.
Pinned Tweet
@mplsoccer_dev
mplsoccer_dev
2 years
What is your favourite viz crafted in mplsoccer?
9
3
11
@mplsoccer_dev
mplsoccer_dev
2 years
🧵Free data for getting started in football
6
89
515
@mplsoccer_dev
mplsoccer_dev
2 years
🧵Data visualization from zero to hero
4
38
230
@mplsoccer_dev
mplsoccer_dev
1 year
Today's release makes it super easy to plot formations
Tweet media one
5
19
198
@mplsoccer_dev
mplsoccer_dev
25 days
✅️ Finally it works 👀 Coming soon
Tweet media one
2
11
205
@mplsoccer_dev
mplsoccer_dev
6 months
This week I went to the Opta forum. It was amazing and a bit scary how many people are using mplsoccer at clubs. One analyst asked how I designed it so a quick thread. 1/
Tweet media one
6
28
195
@mplsoccer_dev
mplsoccer_dev
7 months
Get up and running with @StatsBomb afcon data in no time. I coded this on my phone. It's just too easy with mplsoccer.
Tweet media one
@StatsBomb
StatsBomb
7 months
StatsBomb Release Free 2023 African Cup of Nations Data The first time we've released event data from Africa's continental tournament to the public
8
50
193
1
14
129
@mplsoccer_dev
mplsoccer_dev
22 days
🎯 Almost done
Tweet media one
@mplsoccer_dev
mplsoccer_dev
25 days
✅️ Finally it works 👀 Coming soon
Tweet media one
2
11
205
2
5
122
@mplsoccer_dev
mplsoccer_dev
2 months
10 young talents from my outlier analysis from this weekend Lorran, Flamengo 🇧🇷 1/10
Tweet media one
Tweet media two
1
7
117
@mplsoccer_dev
mplsoccer_dev
11 months
Let's try recreate this visual step by step.
@Barcalytix
Barçalytics
2 years
Kounde is a very well-rounded defender with no glaring weakness and he is only 23. He primarily played as a RCB for Sevilla in the last season. He is excellent on-the-ball, which is very important for Barca considering their amount of possession. Looking forward to his debut.
Tweet media one
14
13
186
1
6
107
@mplsoccer_dev
mplsoccer_dev
21 days
⚽️ New season 🚨 New release
Tweet media one
Tweet media two
@mplsoccer_dev
mplsoccer_dev
25 days
✅️ Finally it works 👀 Coming soon
Tweet media one
2
11
205
4
6
93
@mplsoccer_dev
mplsoccer_dev
2 years
Working on a tutorial thread for how to build these more complex viz.. as people keep asking me. Slow progress 👀
Tweet media one
9
2
86
@mplsoccer_dev
mplsoccer_dev
4 months
11. soccerdata (scrape data)
@HenshawAnalysis
Liam Henshaw
4 months
Python Packages to explore for football analytics: 1. mplsoccer (football viz) 2. statsbombpy (statsbomb package) 3. openai (AI) 4. numpy (math) 5. scikit-learn (machine learning) 6. matplotlib (data viz) 7. bs4 (web scraping) 8. requests (web scraping) 19 pandas (data cleaning)
7
26
252
0
3
81
@mplsoccer_dev
mplsoccer_dev
4 months
Anyone interested in a video call walk-through of the mplsoccer code?
20
2
68
@mplsoccer_dev
mplsoccer_dev
1 month
🚀 Mini update v1.3.0 Plot standardized centered pitches
Tweet media one
1
2
67
@mplsoccer_dev
mplsoccer_dev
6 months
🚀 A little mplsoccer update 🥌 adds a spot_type option for penalty/ center spots 🥌 adds exclude_nan to label_heatmap
Tweet media one
Tweet media two
4
5
60
@mplsoccer_dev
mplsoccer_dev
8 months
Football analytics has gone global. mplsoccer visitors come from nearly everywhere 🌍
Tweet media one
2
3
58
@mplsoccer_dev
mplsoccer_dev
6 months
I uploaded a small library - optasoccer - for loading f24 data into pandas dataframes with named qualifier columns.
Tweet media one
4
4
57
@mplsoccer_dev
mplsoccer_dev
1 year
Experimenting with an alternative to pass sonars. Distance increases further out. Thoughts?
Tweet media one
4
2
55
@mplsoccer_dev
mplsoccer_dev
2 months
. @KubaMichalczyk requested this new pitch type for plotting scaled pitch coordinates. Would anyone else find this useful?
Tweet media one
4
1
50
@mplsoccer_dev
mplsoccer_dev
2 years
Finally cracked how to create beautiful spaced grids using @matplotlib subplots
Tweet media one
3
4
47
@mplsoccer_dev
mplsoccer_dev
10 days
Agreed here are my viz rules
Tweet media one
@mckayjohns
McKay Johns
10 days
When creating data visualizations optimize for simplicity rather than trying to make it as complex as possible to fit more information onto the chart
3
5
60
1
9
46
@mplsoccer_dev
mplsoccer_dev
23 days
1️⃣ example down 1️⃣ more to do
Tweet media one
@mplsoccer_dev
mplsoccer_dev
25 days
✅️ Finally it works 👀 Coming soon
Tweet media one
2
11
205
1
4
45
@mplsoccer_dev
mplsoccer_dev
20 days
The new sonar API allows you to set the bin edges so you can do things like this 😉
Tweet media one
Tweet media two
0
3
45
@mplsoccer_dev
mplsoccer_dev
8 months
🔹matplotlib is low level 🔹mplsoccer medium I think there is definitely a place for a high level library doing: 🔸shot maps 🔸pass networks 🔸... With a single line of code
@athalakbar13
Athal - ⚽️ Analytics
8 months
After trials and errors, finally, I have published my first Python package for Football ⚽️ Data Analysis! 🚀 Read the thread for more details.
10
30
289
1
3
42
@mplsoccer_dev
mplsoccer_dev
21 days
I really like this viz. Often the extra juice you get out of models is feature engineering and this explains it really well.
@StatsBomb
StatsBomb
21 days
ICYMI: Upgrading Expected Pass (xPass) Models An article from our data science team explaining how they've been able to bring more accuracy and better results to our market-leading xPass model by incorporating StatsBomb 360 player positioning data 🔽
1
6
37
1
0
44
@mplsoccer_dev
mplsoccer_dev
11 months
mplsoccer 🚀🌕
@BeGriffis
Ben Griffis
11 months
🚨🚨 Python package update I have a treat for y'all today! I've added a new function to my python package. It is code to create a post-match dashboard for a given match on Whoscored Please see this link for more info on the package 👉
Tweet media one
Tweet media two
20
57
411
0
2
43
@mplsoccer_dev
mplsoccer_dev
1 year
🎯 pass sonars reinvented. The rings are 10 yard increments.
Tweet media one
@mplsoccer_dev
mplsoccer_dev
1 year
Experimenting with an alternative to pass sonars. Distance increases further out. Thoughts?
Tweet media one
4
2
55
1
2
42
@mplsoccer_dev
mplsoccer_dev
1 year
📌 Tip 📌 How to plot completion percentages on pitches 1/4
Tweet media one
1
0
41
@mplsoccer_dev
mplsoccer_dev
1 year
* sneak peak * Formations coming soon to mplsoccer.
Tweet media one
0
2
37
@mplsoccer_dev
mplsoccer_dev
2 years
Stumbled upon this repo with loads of notebooks for xT, xG, NMF, pass sonars & networks.
1
2
38
@mplsoccer_dev
mplsoccer_dev
1 year
Not sure if many people know, but bin_statistic returns the grid cell for each event so you can identify all passes that start in a cell. I am expanding it to cover angle too for sonars.
Tweet media one
1
2
38
@mplsoccer_dev
mplsoccer_dev
1 year
Working on a @duckdb @StatsBomb data loader as side project. Just uploaded a first draft of the SQL. Spoiler it's fast ⏩
Tweet media one
2
1
33
@mplsoccer_dev
mplsoccer_dev
10 days
💜 football is like a graph... players are nodes, passes are edges.. so it makes sense to try graph networks.
@unravelsports
Joris Bekkers
10 days
🌀 𝐩𝐢𝐩 𝐢𝐧𝐬𝐭𝐚𝐥𝐥 𝐮𝐧𝐫𝐚𝐯𝐞𝐥𝐬𝐩𝐨𝐫𝐭𝐬 I’m thrilled to announce today marks the release date of my very own open-source Python package! 𝐮𝐧𝐫𝐚𝐯𝐞𝐥𝐬𝐩𝐨𝐫𝐭𝐬 is designed to transform raw sports data into meaningful insights. 🔗
Tweet media one
4
25
118
1
4
32
@mplsoccer_dev
mplsoccer_dev
1 year
Just reviewing an awesome pull request from @ChicagoDmitry that will add formations to mplsoccer. Anything missing or incorrect?
Tweet media one
2
3
30
@mplsoccer_dev
mplsoccer_dev
6 months
I'm at #OptaForum tomorrow 👋🏼. Found out there are a lot of users of mplsoccer in the industry. Please say hello if you want to help me finish the pass sonars that I have been sitting on for a few years 😅
2
2
30
@mplsoccer_dev
mplsoccer_dev
8 months
I've also heard the creators are pretty awesome 🤣
@HenshawAnalysis
Liam Henshaw
8 months
Using Python for football analysis? Use mplsoccer because: • Easy visuals in few lines of code. • Dive into heatmaps, pass maps, shot charts, and more. • Customise plots. • Compatible with StatsBomb, Wyscout, and other data formats. • The supportive community!
0
3
51
0
3
28
@mplsoccer_dev
mplsoccer_dev
1 year
So who is up for the challenge!
Tweet media one
1
4
28
@mplsoccer_dev
mplsoccer_dev
2 years
🧡 the visuals. Here is a way to use mplsoccer's in-built heatmap instead:
Tweet media one
@sonofacorner
Son of a corner
2 years
NEW VIZ | Contested zones in Serie A 🇮🇹 This week I replicated one of @petermckeever 's amazing visuals in @matplotlib . Where on the pitch are teams touching the ball more than their opponents in open play? ⚽ Code:
Tweet media one
5
9
87
1
2
27
@mplsoccer_dev
mplsoccer_dev
6 months
So who's teaching a course using mplsoccer? Is that why downloads spike up in Feb?
Tweet media one
1
1
24
@mplsoccer_dev
mplsoccer_dev
11 months
Some takaways from the StatsBomb conference
Tweet media one
1
0
26
@mplsoccer_dev
mplsoccer_dev
2 months
👀 🌊 ོ
Tweet media one
0
1
25
@mplsoccer_dev
mplsoccer_dev
1 year
🆕 example for alternative pass sonars
Tweet media one
4
1
25
@mplsoccer_dev
mplsoccer_dev
1 year
I am going to the StatsBomb conference this year if anyone wants to meet up there 💬🗨️
@StatsBomb
StatsBomb
1 year
Just two weeks to go until the 2023 #StatsBombConference at Wembley Numerous networking opportunities and a total of 23 talks across the two stages from a range of experts in the industry A limited number of tickets are still available here 🔽
1
7
14
4
1
24
@mplsoccer_dev
mplsoccer_dev
1 month
👀
Tweet media one
@FabrizioRomano
Fabrizio Romano
1 month
🔵🇵🇾 Brighton are set to complete Diego Gomez move today as Inter Miami have accepted fee in excess of £10m for the Paraguayan talent. Clubs expected to get deal signed and sealed this week.
Tweet media one
292
970
17K
0
1
25
@mplsoccer_dev
mplsoccer_dev
1 year
⚡ New release ⚡ Formations are finally here!
@numberstorm
Andy Rowlinson
1 year
🚀 Release mplsoccer 1.2.1 📸 image formations 🔡 text formations 🔴 scatter formations 🏟️ pitch formations Collaboration with @ChicagoDmitry
Tweet media one
Tweet media two
4
11
85
0
1
22
@mplsoccer_dev
mplsoccer_dev
6 months
Following up a feature request from the Opta forum.. a custom heatmap. What would you call this heatmap, which extends the positional one?
Tweet media one
4
0
24
@mplsoccer_dev
mplsoccer_dev
6 months
Another small update to mplsoccer ⚽️ @RealFevrScout noticed the 424 formation was a bit wrong so it's now fixed ⚽️Added flip_side to change the coordinates to the other side of the pitch
Tweet media one
Tweet media two
1
2
24
@mplsoccer_dev
mplsoccer_dev
1 year
Alternative style for pass networks added by @francescozonaro
Tweet media one
2
2
22
@mplsoccer_dev
mplsoccer_dev
1 year
Statsbomb have released another season of open-data 🚀
@mplsoccer_dev
mplsoccer_dev
2 years
🧵Free data for getting started in football
6
89
515
0
3
20
@mplsoccer_dev
mplsoccer_dev
2 months
The penalty spot is 11m from goal and ~78% are converted. What distance from goal would lead to a 50% chance. And would it be more fun?
Tweet media one
4
2
20
@mplsoccer_dev
mplsoccer_dev
4 months
I am testing adding pass sonars to mplsoccer.. it seems really slow to plot multiple inset axes.🐢
Tweet media one
1
0
20
@mplsoccer_dev
mplsoccer_dev
2 years
Love seeing these posts in different languages. mplsoccer has been picked up all over the world.
0
2
19
@mplsoccer_dev
mplsoccer_dev
2 years
☄️how to use wedges and comet lines in @matplotlib axes.
Tweet media one
Tweet media two
Tweet media three
1
2
20
@mplsoccer_dev
mplsoccer_dev
15 days
My original roadmap is complete. Is there anything still missing from mplsoccer?
1
0
19
@mplsoccer_dev
mplsoccer_dev
2 years
@Wyscout open-data. Including big-5 leagues for one season.
Tweet media one
1
0
19
@mplsoccer_dev
mplsoccer_dev
1 year
🚀 Mini update 1.1.11 🚀 @Flosch1006 adds the @impect_official pitch type. Thanks for the contribution!
Tweet media one
1
3
19
@mplsoccer_dev
mplsoccer_dev
2 years
Hello 1000 followers 👋. 🔸I develop mplsoccer. 🔸I share mplsoccer content. 🔸I am here to help with any mplsoccer queries.
1
1
19
@mplsoccer_dev
mplsoccer_dev
7 months
🐐it wouldn't have of taken off so much without @mckayjohns tutorials too 🙌🏼
@mckayjohns
McKay Johns
7 months
As I've been coding the lessons for the complete football analytics course I've been working on I had forgotten how awesome mplsoccer truly is for a beginner. In about 15 lines of code, I can get a pass map plotted @mplsoccer_dev and everyone who's working on it = 🐐
Tweet media one
3
5
86
0
1
19
@mplsoccer_dev
mplsoccer_dev
1 year
I google this every time I need it 😂
@misraturp
mısra turp
1 year
Some Pandas functions I use very often 👇 1. Set Pandas max_columns or max_rows option to None to see all your columns/rows when you print your dataframe.
Tweet media one
10
52
359
8
0
17
@mplsoccer_dev
mplsoccer_dev
2 months
Wonder if they use mplsoccer👀
@StatsBomb
StatsBomb
2 months
New Free Webinar: How to use StatsBomb free data in Python Join us on Thursday July 18 2024, 16:00 BST, and discover how to load, analyse, and create visualisations with our free datasets Register here:
Tweet media one
2
16
65
1
0
18
@mplsoccer_dev
mplsoccer_dev
2 years
🍬 update to matplotlib 🍪 mix and match subplot mosaic axes 🍦import style sheets direct from packages
Tweet media one
Tweet media two
1
3
16
@mplsoccer_dev
mplsoccer_dev
2 years
@StatsBomb open-data, including Arsenal invincible season and the Messi archive.
Tweet media one
1
0
18
@mplsoccer_dev
mplsoccer_dev
19 days
⭐️3⃣8⃣7⃣ ⭐️
Tweet media one
1
2
18
@mplsoccer_dev
mplsoccer_dev
4 months
Forgot about this and came back to 9 yeses! 🤩
@mplsoccer_dev
mplsoccer_dev
4 months
Anyone interested in a video call walk-through of the mplsoccer code?
20
2
68
4
0
17
@mplsoccer_dev
mplsoccer_dev
6 months
I’m a bit stuck with sonars. I think there are three possible layouts a) grid of sonars b) team formation of sonars c) average position sonars b) and c) are just player sonars at x/y coordinates. Have I missed anything?
Tweet media one
1
0
17
@mplsoccer_dev
mplsoccer_dev
16 days
Anyone tried the new Sonars yet?
@mplsoccer_dev
mplsoccer_dev
21 days
⚽️ New season 🚨 New release
Tweet media one
Tweet media two
4
6
93
7
1
16
@mplsoccer_dev
mplsoccer_dev
1 year
Poll 📈 If I added some custom heatmaps to mplsoccer. How should I do it?
Tweet media one
Tweet media two
1
5
16
@mplsoccer_dev
mplsoccer_dev
2 years
One of my favourite books by @jakevdp includes a chapter on @matplotlib
Tweet media one
2
1
15
@mplsoccer_dev
mplsoccer_dev
5 months
It’s time to get rid of these ridiculous penalties 🧵
Tweet media one
2
0
16
@mplsoccer_dev
mplsoccer_dev
2 years
Idea for using @StatsBomb data. You are Sir Alex Ferguson in the 2009 Champions league final. What tactics do you use to beat Barcelona?
Tweet media one
2
0
15
@mplsoccer_dev
mplsoccer_dev
10 months
Cool crossover to another sport 🏀⛹️🏀
@gaussianhoops
gaussianhoops
10 months
#Monaco Mike James performing on a high level in #Euroleague this season. Rankings in a radar chart + shooting in a shot chart. Radar chart inspiration by statsbomb, python support by @mplsoccer_dev
Tweet media one
1
1
4
1
4
14
@mplsoccer_dev
mplsoccer_dev
2 years
@UtdArena I provide a Python library for visualizing ⚽ data.
Tweet media one
Tweet media two
Tweet media three
0
0
14
@mplsoccer_dev
mplsoccer_dev
2 years
@sonofacorner has been killing it with his latest tutorials for @matplotlib
Tweet media one
2
0
14
@mplsoccer_dev
mplsoccer_dev
2 months
mplsoccer 🤩
@TheRicardoAlvez
Ricardo Alves
2 months
Attending to @StatsBomb webinar. There's an example of how you can do it with their open data
Tweet media one
Tweet media two
2
0
16
1
1
13
@mplsoccer_dev
mplsoccer_dev
2 years
You can't go wrong with this masterclass from @petermckeever
Tweet media one
1
0
13
@mplsoccer_dev
mplsoccer_dev
5 months
Data science is so vast so I focus on learning just what I need right now. I wanted to trade mark just in time learning.. but it turns out its already a thing. 😇
2
0
13
@mplsoccer_dev
mplsoccer_dev
6 months
The first commit of code was over five years ago, and it dumped a single notebook. It was even called fbplot back then
Tweet media one
1
0
13
@mplsoccer_dev
mplsoccer_dev
2 years
Good news @p_robberechts put out a new version of soccerdata... which makes it easier to get the big 5 player league data.
1
0
12
@mplsoccer_dev
mplsoccer_dev
6 months
Clear docs were super important, but even more important was @mckayjohns who started making his awesome videos that catapulted the library to way more people.
Tweet media one
Tweet media two
1
1
12
@mplsoccer_dev
mplsoccer_dev
6 months
How do you make carries data from the opta events?
3
0
12
@mplsoccer_dev
mplsoccer_dev
6 months
More recently @HenshawAnalysis @jonollington and @BeGriffis have helped spread the word. I am blown away by how many people were using it at Opta Forum as I had no idea🤯. Thank you and please tell me if there are bugs or any features that are missing.
2
1
12
@mplsoccer_dev
mplsoccer_dev
1 year
Let's see if someone manages to build mplsoccer in Excel. I think the dependencies will all be there 🤪
@gvanrossum
Guido van Rossum
1 year
Yeah, so I helped the Excel team with this. Excited that it's out!
303
3K
16K
0
1
10
@mplsoccer_dev
mplsoccer_dev
2 years
My viz process 📈 exploratory analysis 🔸find key points 📚 arrange a story - pyramid style so most important points 1st 🗑️remove chart junk 📢 add readable annotations to form a story
0
2
11
@mplsoccer_dev
mplsoccer_dev
1 year
Who else designs on paper? I've had some code to do sonars for a while, but not sure how to do the API
Tweet media one
1
0
11
@mplsoccer_dev
mplsoccer_dev
3 months
Fantastic resource
@devinpleuler
Devin Pleuler
3 months
Pushed some new sample code to my Soccer Analytics Handbook, focused on tracking data. Including: - Fitting and clustering Bezier curves to player runs - Plotting player confidence regions
Tweet media one
Tweet media two
3
32
148
0
1
11
@mplsoccer_dev
mplsoccer_dev
5 months
Anyone talented enough to draw a football boot and shirt marker as a SVG?
@NicoBorghi
Nicola Borghi
5 months
As a member of the PASTA Collaboration, I must thank you for supporting our #pastamarkers project! We also thank the reviewers of our paper: . If you have suggestions, such as missing pastas, don't hesitate to open an Issue here:
Tweet media one
2
18
146
0
0
10
@mplsoccer_dev
mplsoccer_dev
2 months
Yamal is so young he breaks my axis (almost)
Tweet media one
0
0
10
@mplsoccer_dev
mplsoccer_dev
6 months
Checking my event stream data works and found this pretty crazy sequence with 2 goals in 30 events. KAA Gent vs Cercle Brugge
Tweet media one
1
0
10
@mplsoccer_dev
mplsoccer_dev
1 month
Motivate me to finish the pass sonars. ⚽️📡
2
0
10
@mplsoccer_dev
mplsoccer_dev
2 years
You might want to learn about @matplotlib object orientated interface.
Tweet media one
1
0
9
@mplsoccer_dev
mplsoccer_dev
2 months
Conor Bradley, Liverpool 10/10
Tweet media one
Tweet media two
1
1
10
@mplsoccer_dev
mplsoccer_dev
7 months
If I did a presentation on mplsoccer. What would be interesting topics for you?
3
3
9
@mplsoccer_dev
mplsoccer_dev
2 years
@sonofacorner I have some old code here:
1
0
9
@mplsoccer_dev
mplsoccer_dev
7 months
You can also install @mplsoccer_dev via conda-forge conda install mplsoccer
@mckayjohns
McKay Johns
7 months
Creating a football pitch in Python is super easy thanks to @mplsoccer_dev and the wonderful mplsoccer package they've created Here's a little tutorial on how to do it
2
11
132
0
1
8
@mplsoccer_dev
mplsoccer_dev
6 months
Finally @Soccermatics started teaching his awesome soccermatics course and used mplsoccer. I've no doubt he's now trained a big chunk of the new industry how to do football analytics, and spread mplsoccer's use. I even heard from @patricklucey that he uses it too for teaching.
1
1
9
@mplsoccer_dev
mplsoccer_dev
6 months
I think a big part of the early success was just getting 1 or 2 super users to test things out and feedback with problems. @ThatGarateyjc was the first user and we made this graphic of @berylylubala (Bez) it was called mplsoccer at this point, a callout to @Torvaney 's ggsoccer.
Tweet media one
2
0
9
@mplsoccer_dev
mplsoccer_dev
1 year
Another spin on radars (with code) 📡🎯
@_JKDS_
JK
1 year
🆕📊 New season, new radar style! Like standard radars, the "swarm radar" can be used to quickly profile, assess or compare players. But it also aims to give deeper context by displaying the distributions of metric scores amongst the pool of comparison players (1/3)
Tweet media one
17
28
271
1
2
9