← Back to home
Comparison · Infra & APIs

ggfootball vs ggpointless

A side-by-side editorial comparison of ggfootball and ggpointless — release velocity, themes, recent moves, and the top alternatives to consider.

ggfootball vs ggpointless: at a glance

Featureggfootballggpointless
SectorInfra & APIsInfra & APIs
Velocity score0.00.0
Sparks · 30d00
Top themessports-analytics, r-package, data-scraping, expected-goalsggplot2-extensions, data-visualization, pictogram-charts, alpha-gradients
Last editorial update44m ago2h ago
WebsiteVisit →Visit →

What is ggfootball?

A football-viz package just swapped scraping for an API and broke its own output to do it.

ggfootball is a small R package for plotting expected-goals and shot data, sourced from Understat. Four releases are visible. The 0.2.x line was argument tidying and dependency pruning; 0.3.0 replaced the data-acquisition layer wholesale, moving get_match_shots() from HTML parsing onto Understat's AJAX endpoints and changing the returned column names in the process.

Read the full ggfootball trajectory →

What is ggpointless?

ggpointless keeps adding the ggplot2 layers nobody else bothered to write.

ggpointless is a small ggplot2 extension collecting geoms that sit outside the standard set — Lexis diagrams, Chaikin-smoothed paths, hanging chains, Fourier reconstructions — and it has grown steadily rather than changed shape. The May release is the largest yet: isotype and pictogram bar charts as stacks of discrete unit cells, a family of geoms that fade paths, segments, curves and reference lines along their length, and geom_gridline(), which draws grid lines as a layer on top of the data rather than beneath it.

Read the full ggpointless trajectory →

ggfootball vs ggpointless: editorial side-by-side

G
ggfootball
INFRA · APIS
0.0

A football-viz package just swapped scraping for an API and broke its own output to do it.

◆ Current state

ggfootball is a small R package for plotting expected-goals and shot data, sourced from Understat. Four releases are visible. The 0.2.x line was argument tidying and dependency pruning; 0.3.0 replaced the data-acquisition layer wholesale, moving get_match_shots() from HTML parsing onto Understat's AJAX endpoints and changing the returned column names in the process.

◆ Where it's heading

The direction is away from scraped HTML and toward a thinner, more defensible package: four dependencies dropped in 0.3.0 on top of qdapRegex in 0.2.1, input validation added, error messages rewritten. Both breaking changes so far were accepted rather than deferred, which reads as a maintainer treating pre-1.0 as the window to get the shape right. The package is willing to break callers for structural reasons, not cosmetic ones.

◆ Prediction

With the scraper rebuilt and the dependency surface trimmed, the next releases are likely to stabilise the new column names and extend the plotting side, which has seen nothing since 0.2.0. A 1.0 would be the signal that the data structure is now considered fixed.

G
ggpointless
INFRA · APIS
0.0

ggpointless keeps adding the ggplot2 layers nobody else bothered to write.

◆ Current state

ggpointless is a small ggplot2 extension collecting geoms that sit outside the standard set — Lexis diagrams, Chaikin-smoothed paths, hanging chains, Fourier reconstructions — and it has grown steadily rather than changed shape. The May release is the largest yet: isotype and pictogram bar charts as stacks of discrete unit cells, a family of geoms that fade paths, segments, curves and reference lines along their length, and geom_gridline(), which draws grid lines as a layer on top of the data rather than beneath it.

◆ Where it's heading

Two patterns are visible. Ideas get generalized rather than left as one-offs: geom_area_fade() in the previous release established alpha gradients via grid::linearGradient(), and the recent release spreads that treatment across paths, lines, steps, segments, curves and the three reference-line geoms, each with the same fade_direction and alpha_fade_to arguments. And each new geom is expected to survive real plots — the unit charts work under coord_equal, coord_polar, coord_radial, coord_flip and faceting, and geom_gridline reads positions from trained scales and inherits styling from the theme's panel grid. The package also tracks ggplot2 closely, requiring 4.0.0 and using make_constructor() and gg_par() internally, and it dropped its bundled datasets outright rather than maintain stale copies.

◆ Prediction

The fade treatment now covers most path-like geoms but not the area and ribbon family beyond geom_area_fade(), which is where the pattern has room left to run. The unit-cell charts arrive with a label helper and no fill or grouping variants, so those are the plausible next additions.

Alternatives to ggfootball and ggpointless

Other Infra & APIs products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either ggfootball or ggpointless.

See all ggfootball alternatives → · See all ggpointless alternatives →

Recent activity from ggfootball and ggpointless

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 3mo agoggpointlessPictogram unit charts, gridline layers and a family of fading geoms
  2. 5mo agoggpointlessFourier and arch geoms, area fades and glowing points
  3. 6mo agoggfootballggfootball 0.3.0
  4. 6mo agoggfootballggfootball 0.2.2
  5. 1y agoggfootballggfootball 0.2.1
  6. 1y agoggfootballggfootball 0.2.0
  7. 2y agoggpointlessgeom_catenary() draws a hanging chain
  8. 3y agoggpointlessgeom_chaikin() adds corner-cutting path smoothing
  9. 4y agoggpointlessgeom_lexis() and the female_leaders dataset

Frequently asked questions

What is the difference between ggfootball and ggpointless?

They serve adjacent needs but don't currently overlap on shipped themes. ggfootball and ggpointless are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is ggfootball better than ggpointless?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. ggfootball and ggpointless are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.

What are the best alternatives to ggfootball?

Top ggfootball alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "ggfootball alternatives" section above for the current picks, or visit /alternatives/ggfootball for the full list with editorial commentary on each.

What are the best alternatives to ggpointless?

Top ggpointless alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "ggpointless alternatives" section above for the current picks, or visit /alternatives/ggpointless for the full list with editorial commentary on each.