$npx skillfedfor your agent

adjustText

Iteratively adjust text position in matplotlib plots to minimize overlaps

Worth itPyPI VisualizationReleased Jun 20261.2M downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — adjusttext-1.4.0-py3-none-any.whl
v1.4.0 · released 2026-06-08 · 3 runtime deps: numpy, matplotlib, scipy

Yes. Low install friction, permissive MIT license, active maintenance, no known vulnerabilities, and solves a genuine matplotlib usability problem. Install if you regularly create labeled plots and want to avoid manual label repositioning.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Low friction install with three common scientific dependencies (numpy, matplotlib, scipy).
  • Actively maintained with recent releases; repository shows 1660 stars and current activity.

License · maintenance · safety

MIT (permissive) — MIT license permits use in proprietary and open-source projects with minimal restrictions; attribution required but no copyleft obligations.

last release 2026-06-08 (67 days) · last repo commit 2026-06-08 · 1,660 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,212,535 downloads/mo, #4,211 on PyPI

Verify before relying

pip install adjustText

import matplotlib.pyplot as plt
from adjustText import adjust_text

plt.scatter([1, 2, 3], [1, 2, 3])
texts = [plt.text(x, y, f'label{i}') for i, (x, y) in enumerate([(1,1), (2,2), (3,3)])]
adjust_text(texts)
plt.show()
  • Whether the algorithm's performance scales well with very large numbers of labels (hundreds or thousands)
  • Specific configuration options available for tuning label placement behavior on complex plots
Same gist for agents: .md · .json

What it is and what it does

adjustText solves the common problem of overlapping text labels on matplotlib plots by iteratively repositioning them to minimize collisions. When plotting multiple labeled points, the default matplotlib text placement often results in unreadable overlaps; this package automates the tedious manual repositioning work by applying an algorithm that moves labels away from each other and data points while keeping them visually associated with their targets.

The package works as a post-processing step on an existing matplotlib figure: you create your plot normally, pass the text objects to adjustText's main function, and it adjusts their positions. It requires only numpy, matplotlib, and scipy as dependencies and is designed to work well with minimal configuration, though the algorithm is highly configurable for complex cases. The library is inspired by ggrepel for R and offers a simpler alternative to manual label placement.

Use it for

  • Scatter plots with many labeled data points where default text placement causes heavy overlap
  • Scientific figures with annotations that need automatic repositioning to improve readability
  • Multi-point graphs where manual label adjustment would be time-consuming and error-prone
  • Publication-ready plots requiring clean, non-overlapping label layouts without manual tweaking

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Low install friction, permissive MIT license, active maintenance, no known vulnerabilities, and solves a genuine matplotlib usability problem. Install if you regularly create labeled plots and want to avoid manual label repositioning.

Install

adjusttext on PyPI

Before you install

Low friction install with three common scientific dependencies (numpy, matplotlib, scipy). Actively maintained with recent releases; repository shows 1660 stars and current activity.

License in practice

MIT license permits use in proprietary and open-source projects with minimal restrictions; attribution required but no copyleft obligations.

Quickstart

pip install adjustText

import matplotlib.pyplot as plt
from adjustText import adjust_text

plt.scatter([1, 2, 3], [1, 2, 3])
texts = [plt.text(x, y, f'label{i}') for i, (x, y) in enumerate([(1,1), (2,2), (3,3)])]
adjust_text(texts)
plt.show()

Verify before relying

  • Whether the algorithm's performance scales well with very large numbers of labels (hundreds or thousands)
  • Specific configuration options available for tuning label placement behavior on complex plots

Package facts

LicenseMIT permissive
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependencies
3 packages
numpymatplotlibscipy
MaintenanceActively maintained 67 days since the last release
Last repo commit
First released
Downloads1,212,535 / month, #4,211 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Framework :: MatplotlibTopic :: Scientific/Engineering :: Visualization

Evidence: adjusttext-1.4.0-py3-none-any.whl

Tags

Capabilities
matplotlib label overlap removalautomatic text placement matplotlibprevent overlapping labels plotslabel positioning matplotlibtext annotation adjustmentmatplotlib label collision detectionsmart label placement
Topics
matplotlib-pluginlabel-placementvisualization

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “matplotlib label overlap removal”

  • adjustTextAutomatically repositions text labels on matplotlib plots to minimize…
  • dtlpymetricsCalculates and generates quality scores for annotations in image and…
  • matplotlib-vennPlots area-weighted two- and three-circle Venn diagrams using…

Give your agent the search over MCP, or paste the wish link into any chat.

More Visualization packages

matplotlib Worth it
PyPI · Visualization · released Jul 2026

matplotlib creates static, animated, and interactive visualizations in Python, producing publication-quality figures in multiple formats for scripts, shells, web servers, and graphical interfaces.

Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.

permissive licensecompiled wheel · 3.11+
232.4Mdownloads / mo
contourpy Worth it
PyPI · Information Analysis · released Jul 2025

ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.

BSD-3-Clausecompiled wheel · 3.11+
191.2Mdownloads / mo
plotly Worth it
PyPI · Visualization · released Jul 2026

Plotly is an interactive, browser-based graphing library that creates charts and visualizations from Python, rendering them as HTML that can be viewed in Jupyter notebooks, standalone files, or web applications.

MITpure Python · 3.8+
74.2Mdownloads / mo
graphviz Worth it
PyPI · Visualization · released Jun 2025

Generates DOT language source code for graph structures and renders them using the Graphviz graph drawing software installed on your system.

Install it if you need to generate or render graphs from Python.

MITpure Python · 3.9+
56.8Mdownloads / mo
streamlit Worth it
PyPI · Application Frameworks · released Aug 2026

Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.

Apache-2.0pure Python · 3.10+
29.7Mdownloads / mo
leather Unrated
PyPI · Python Modules · released Dec 2025

Leather is a lightweight Python charting library for quick, no-frills data visualization. It generates charts without requiring perfect styling or extensive configuration.

MITpure Pythonaging
28.7Mdownloads / mo

See also japanize-matplotlib · lovelyplots · matplotlib-fontja · UpSetPlot · termplotlib · plotnine · koreanize-matplotlib · rectangle-packer · mplcursors · matplotlib-scalebar