Skip to contents

Gallery

Gallery

Every article by its picture: a figure the article draws, or a preview of a table theme for the articles built on tables.

Getting Started

Getting Started with sdvplotR

Install sdvplotR and draw your first team logos, colors and headshots in ggplot2, gt and reactable across the 28 leagues of the SportsDataverse team index.

Per-Sport Articles

Data ingest with the companion SportsDataverse package, then sdvplotR visualization, for each sport.

NFL Visualizations with nflverse and sdvplotR

Ten charts and tables from the 2025 NFL season with nflreadr and sdvplotR: offense against defense with logos, standings, quarterback headshots, relocated franchises and a team-colored field.

College Football Visualizations with cfbfastR and sdvplotR

Ten charts and tables from the 2025 college football season with cfbfastR and sdvplotR: every FBS team on one scatter, conference standings, the Playoff bracket, quarterback headshots and tiers.

NBA Visualizations with hoopR and sdvplotR

Ten charts and tables from the 2025-26 NBA season with hoopR and sdvplotR: a ratings quadrant, net-rating bars, a bump chart, headshots, a team-colored shot chart and an interactive version.

WNBA Visualizations with wehoop and sdvplotR

Ten charts and tables from the 2026 WNBA season, the first with 15 teams, with wehoop and sdvplotR: a ratings quadrant, expansion win races, headshots, a binned shot chart and an interactive chart.

MLB Visualizations with baseballr and sdvplotR

Ten worked examples on the 2026 MLB regular season: standings, run differential, Statcast, home run leaders, a spray chart, the division races, franchise moves and a tier list.

NHL Visualizations with fastRhockey and sdvplotR

Ten worked examples on the 2025-26 NHL season: standings, goal differential, expected goals, a shot map on the rink, scoring and goaltending leaders, the Coyotes-to-Utah lineage, the points race and the playoff tiers.

Men's College Basketball Visualizations with hoopR and sdvplotR

Division I men’s basketball has more than 360 teams in 31 conferences, and the conferences change from one season to the next.

Women's College Basketball Visualizations with wehoop and sdvplotR

Division I women’s basketball has more than 360 teams, and each shares its ESPN id with the school’s men’s team.

Soccer: any provider's shots on one pitch

Convert soccer event coordinates from any major provider to one 105 x 68 m pitch frame with sdv_pitch_coords(), then draw them with sdvplotR.

Cookbooks

Task-oriented, cross-league recipes: logos and headshots in ggplot2, team colors and themes, interactive charts, playing surfaces and shot charts, and reactable tables.

Logos, wordmarks and headshots in ggplot2

Twelve ggplot2 recipes: logos as points, at bar and line ends, on axes and beside titles, in tier lists, plus sizing, overlap, past seasons’ marks, any image, headshots and social-size exports.

Team colors and themes

Ten recipes for team colors: a league’s palette, colors per row, team fill and outline scales, clashing colors, readable text on team fills, named palettes, conference colors, dark backgrounds, and choosing a gt theme.

Interactive charts

Twelve recipes for team logos on web charts: ggiraph tooltips, hover highlights and logo axes, plotly logos as layout images, leaflet logo markers, a reactable table, self-contained HTML and static PNG exports for social posts.

Surfaces and shot charts

Eleven recipes for playing surfaces: every sport’s surface, team colors and a center logo, NBA and WNBA shot charts with sdv_court_coords(), a rotated half court, a college shot chart, a hockey goal map, a baseball field and a football drive chart and Euroleague shots on the FIBA court.

reactable Integration

sdvplotR provides a family of helpers for embedding team logos, wordmarks, player headshots, and team-colored bars in reactable tables.

Tables cookbook

gt tables on SportsDataverse data: the house themes, standings with cut lines, percentile bars, rank changes, schedule matrices, tier lists, faceted and snaked layouts, and saving for social. The gt_* toolkit comes from Andrew Weatherman’s gtUtils.

SportsDataverse Table Themes

The SportsDataverse table themes for gt: gt_theme_sdv() in light or dark, and gt_theme_sdv_team() dressed in one team’s colors.

Team Tables with the gt Toolkit

The two kinds of gt helpers on one table: the team layer of logos, headshots and colors, and the table toolkit of themes, legends and cut lines.

Styling Headers, Legends, and Captions

Style headers, legends and captions in gt tables through the named-list arguments of gt_title_header() and the other helpers that take them.

Saving and Posting Tables

Save gt tables as images sized for each platform, crop the whitespace, and post the same table to the web and to social feeds.

Border Bars

Colored bars above or below a gt table with gt_border_bars_top() and gt_border_bars_bottom(), stacked or as a single accent.

Percentile Bars and Cut Lines

Percentile bars, cut lines and significance marks that show which values in a gt table stand out and where one group ends and the next begins.

Creating Faceted Tables

Split a long gt table into side-by-side panels with gt_grid(), so 25 rows fit an image shaped for posting.

Building a Schedule Matrix

A schedule matrix puts one team per row and one week per column, and draws each opponent’s logo in the cell where they met.

Creating Tier Lists

A tier list ranks teams into colored bands, best band on top, each band a row of logos.

Winningest Franchises in Rolling Windows

The NFL’s five winningest franchises in every ten-year window from 1999-2008 to 2016-2025, each drawn as its logo and shaded by its Super Bowl wins.

Recipes

Real-world tasks worked end to end: the brief, the data, a first draft, the fixes that make it publishable, and the export at the size it will be posted. Then static versions of SportsDataverse web visuals, and end-to-end workflows.

NFL EPA Scatter

Make the offense-vs-defense EPA chart for social after the Super Bowl, from a first draft to 1200 x 675 and 1080 x 1080 exports.

CFB Conference Table

Build the final Big Ten standings table for a newsletter, with logos, records and game-by-game margin bars, exported 1600 px wide and as a square for social.

NBA Net Rating Quadrant

Chart every NBA team’s offensive and defensive rating by conference, with logos, average lines and net-rating guides, for a blog post and a square social post.

WNBA Scoring Leaders Card

Make a WNBA scoring-leaders card with headshots, team logos and team-color bars, exported at 1080 x 1080 for Instagram and as a top-five 1200 x 675 cut for X.

MLB Run Differential

Build a 1600 px blog graphic of MLB run differential: ranked bars in team colors with logos at the bar ends, beside the season’s running totals for the best and worst teams.

NHL Shot Map

Map every unblocked shot of the Stanley Cup clincher on a rink in team colors, sized by expected goals, with the goals, a scoreboard and exports at 1200 x 675 and 1600 x 900.

College Hoops Tiers

Turn a power rating into a Big Ten men’s basketball tier list with sdv_team_tiers(), the tiers cut at the rating gaps, exported for social at 1200 x 675 and 1080 x 1080.

Rank Bump Chart

Draw the college football season’s AP Top 25 as a bump chart, with logos at the line ends and the biggest climbers called out, exported for a blog and for X.

Head-to-Head Card

Make a Super Bowl tale-of-the-tape card: two teams’ seasons as mirrored league-rank bars in team colors with dark-background logos, exported at 1200 x 675 and 1080 x 1080.

WBB Conference Standings

Build the final SEC women’s basketball standings table, with logos, every conference result as a win-loss strip and how each season ended, dressed in the champion’s colors and exported for a newsletter and a 4:5 Instagram post.

Neighbour Ranks

One team in the middle of an 11-row table, with the five teams ranked just above and below it, so the gaps to its neighbours show next to the rank.

Shot Grid

A shot chart cut into a grid of zones, each colored by a shooter’s percentage against the league from that spot, rather than one dot per attempt.

Rolling Form

Each team’s last 150 offensive plays against the 150 before them, drawn so a change in form shows before the season average catches up.

Signature Ribbon

A shooter’s profile as a ribbon: how often each distance is attempted and how well it is made, drawn along the shot distance.

End-to-End Workflows with sdvplotR and the SportsDataverse Ecosystem

End-to-end workflows: load data from SportsDataverse packages, draw it with sdvplotR, and export the charts and tables.

Interactive

The recipes as charts and maps a reader can hover, filter and zoom, with ggiraph, plotly and leaflet. Start with the Interactive Charts cookbook; every leaderboard and per-sport article also ends with an interactive version.

Interactive NFL EPA Scatter

Turn the offense-vs-defense EPA chart into a web chart: hover a logo for the team’s numbers and ranks, fade the other 31, and share it as one HTML file.

Interactive NBA Net Rating

Build the NBA offense-vs-defense quadrant in plotly with team logos and hover details, then a net-rating bar chart with logos on the axis, and share both as web pages.

Interactive NHL Shot Map

Turn the Stanley Cup clincher’s shot map into a web chart: hover a shot for the shooter, period, time, shot type and result, hover a shooter to light up all of his shots, and keep each team’s logo and score beside its end.

Interactive MLB Run Differential

Make the season’s run differential ranking a web chart: team-color bars with logos on the axis, a hover card with each team’s record and runs, and a linked view of run differential against winning percentage with the Pythagorean expectation.

CFB Stadium Map

Put every FBS program on a map as its logo at its home stadium: hover for the school, click for the stadium, switch conferences on and off, and share it as one HTML file.

Leaderboards

Each league’s current season, rebuilt every week with this site: the season to date while games are played, the last full season in the offseason.

NFL Weekly Leaderboard

The NFL season to date, rebuilt every week: a power table by EPA per play, offense against defense, and a quarterback leaderboard with headshots.

College Football Weekly Leaderboard

The college football season to date, rebuilt every week: a top 25 by opponent-adjusted EPA per play, every FBS team by conference, and the top 25’s offense against its defense.

NBA Leaderboard

The latest NBA season, rebuilt every week: standings with net rating, a net rating chart with logos on the axis, and the scoring leaders with headshots.

WNBA Leaderboard

The latest WNBA season, rebuilt every week: standings with net rating, offense against defense with logos, and the scoring leaders with headshots.

MLB Leaderboard

The latest MLB season, rebuilt every week: division standings, run differential with logos, and the league leaders with headshots.

NHL Leaderboard

The latest NHL season, rebuilt every week: standings, goal differential with logos on the axis, and the points leaders with headshots.

Leaderboard Dashboards with sdvplotR, gt, and Quarto

Leaderboard dashboards with sdvplotR, gt tables and Quarto: team logos, colors and rankings laid out for a page that updates.

Automation

Make and post social graphics on a schedule.

Social Graphics, Automated

One Rscript makes season leaderboards, final-score cards and a player-of-the-game card from SportsDataverse data, writes their alt text and captions, and posts them to Bluesky on a GitHub Actions schedule.

Social Posting Patterns with sdvplotR

Shareable sports graphics with sdvplotR: team logos, colors and titles sized and exported for X, Bluesky and Instagram.