# slowkow/ggrepel

:round_pushpin: Repel overlapping text labels away from each other in your ggplot2 figures.

Repository: https://github.com/slowkow/ggrepel
Canonical: https://ross.abutalabs.com/products/ggrepel
Homepage: https://ggrepel.slowkow.com
Language: R
License: GPL-3.0
License Family: copyleft
Topics: ggplot2, cran, visualization, text, rstats
Last push: 2026-04-14T13:38:53+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 77, release rhythm 35, longevity 100
- inputs: {"age_days": 3895, "days_push": 141, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1259, forks 96 (observed 2026-08-28T04:04:09.879702+00:00)

## What it is
An R package that provides ggplot2 geoms (geom_text_repel and geom_label_repel) which automatically reposition overlapping text labels in plots. Labels repel away from each other, data points, and plot edges to remain readable.

## Use cases
- stop overlapping text labels in ggplot2 scatter plots
- label every point in a dense plot without collisions
- add readable annotations to R figures
- repel labels away from data points and plot edges
- make publication-quality labeled charts in R

## When to choose
- you use ggplot2 and need non-overlapping text or label annotations
- you want a mature, CRAN-published package with active maintenance
- you need fine control over label placement, hiding, and repulsion behavior

## When to avoid
- you are not plotting in R with ggplot2
- you need label repulsion in matplotlib, plotly, or other non-R plotting libraries
- you want fully manual, fixed label positions

## Facets
- artifact type: library
- maturity: stable
- function: data-visualization, charts
- domain: data-visualization, data-science
- platform: python, cross-platform
- tags: r, ggplot2, cran, text-labels, plot-annotation

## Member repositories
- slowkow/ggrepel (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:09.879702+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:05:32.314142+00:00, confidence not recorded.
  - readme: https://github.com/slowkow/ggrepel (fetched 2026-08-28T04:04:09.879702+00:00, sha 006d2bd0f1b6)
  - homepage: https://ggrepel.slowkow.com (fetched 2026-08-29T12:17:05.987734+00:00, sha 8e905398c112)
  - site_page: https://ggrepel.slowkow.com/authors (fetched 2026-08-29T12:17:05.998014+00:00, sha 01c12ae13960)
- Data as of 2026-08-30T08:39:29.467469+00:00.
