README.md
June 2, 2024 · View on GitHub
Animate goals, Visualize stats, Video analyses, etc. from the World Cup, Premier League, Copa America, and beyond. (Using ggplot2, ggsoccer, and more)
Ryo Nakagawara | Twitter: @R_by_Ryo
Shogun Soccer newsletter!
I haven't updated this repository in a while... Nowadays you can find me on my Substack, Shogun Soccer: Analyzing the J.League from a tactical, data, and fan perspective!
All the data viz are created with R!
NEW: J.League 2023 Season Review (December 13, 2023)
Web-scrape Soccer Data Tutorial
Video Analyses
- Analyzing Trent Alexander-Arnold <> Andy Robertson cross-field passes: 1, 2, 3, 4
- FC Tokyo's 2nd goal vs. Shimizu S-Pulse (great example of a counterattack): 1, 2, 3, 4
- FC Tokyo vs. Kashima Antlers (Aug. 26, 2020): General match notes, Tactical breakdown of first conceded goal, Tactical breakdown of second conceded goal
- FC Tokyo vs. Nagoya Grampus (Aug. 15, 2020): General match notes
- FC Tokyo vs. Shonan Bellmare (Aug. 23, 2020): General match notes
- FC Tokyo vs. Gamba Osaka (Aug. 30, 2020): General match notes
Liverpool FC: xG Timelines, xG Shot Maps, & Match Notes/Thoughts

Shot Comparison Maps

Squad Age Profiles
- Request thread (Feb. 28, 2020): LFC, Juventus, Barcelona, Arsenal, BVB, & many more requested & done
- Code for grabbing the data from transfermarkt (see 'Intro to {polite} Web Scraping of Soccer Data with R!' blog post above for details)

Visualizing the Premier League (2019-2020)
- Visualizing the Premier League So Far, Part 1: Overview with xPts Tables and xG Plots
- Visualizing the Premier League So Far, Part 2: Stats from Open Play and Set Pieces

Visualizing Event-Level Data with R!
Lionel Messi / Barcelona (using StatsBomb data):
- Pass Partner Plots
- Much more coming soon!
Copa América 2019 blog post:
Asian Cup 2019 blog post:
World Cup blog posts:
- Part 1: Recreating the Goals of the World Cup!
- Part 2: Final Matchday Drama of the World Cup Group Stages!
- Part 3: Animating the Goals of the World Cup!
rmarkdown/scripts/gists
- Progressive Passers - Bundesliga: Gist
- World Cup Goal Plots (static):
World Cup/RMarkdown/worldcup_goal_plots.rmd - Animated World Cup Goals: Most up-to-date is in the blog post
- Group Table Final Matchday:
World Cup/RMarkdown/group_table_final_matchday.rmd - Animated Japan Uniforms:
World Cup/RMarkdown/historical_kits.rmd - Liverpool FC Age-Utility Matrix: Gist
- Jürgen Klopp's Managerial History with Elo Ratings: Gist
- J.League: 各チームの平均推定市場価格 vs. 平均年齢: Gist
- Asian Cup Top Scorers: Gist
- Asian Cup Winners: Gist
- J.League 2018 得点貢献度: Gist
- Goal-Contribution Matrix (Premier League 2018-2019 Season): Gist
- Player-Minutes Gantt Chart (Liverpool FC: 2010-2011 comparing Roy Hodgson vs. Kenny Dalglish): Gist
Visualizing the World Cup with R [Tokyo.R Presentation (July 2018)]:
More Examples:
Goalkeeper Performance & Workload
Progressive Passers: Bundesliga (2019-2020)
xG Match Summary
Manchester City players dominate the ‘expected’ stats: np-xG per 90 & xA per 90 for the Premier League (2019-2020)
Player-Minutes Gantt Chart (Liverpool FC: 2015-2016 Season comparing Brendan Rodgers vs. Jürgen Klopp)
Pass Partner Plots: Total Completed Passes Into The Box Between All Players

Expected vs. Actuals Goals for select group of attacking players competing in the Copa América

Top Scorers of the Asian Cup

First Goal of the World Cup: Yuri Gazinsky

Premier League 2018-2019 Season: Goal-Contribution Matrix

Jürgen Klopp's Managerial History

Age-Utility Matrix: Liverpool FC

Cristiano Ronaldo's hattrick vs. Spain:

J.League 2018 Season: Goal Contribution Matrix

Group D Final Matchday Table:

Offside Trap gif:

Japan uniforms gif:
