{"adoption": {"forks": 96, "observed_at": "2026-08-28T04:05:18.518849+00:00", "stars": 1661}, "canonical_url": "https://ross.abutalabs.com/products/adjusttext", "card": {"archived": false, "artifact_type": "library", "description": "A small library for automatical adjustment of text position in matplotlib plots to minimize overlaps.", "domain": ["data-visualization", "data-science"], "enriched": true, "function": ["data-visualization"], "health_score": 91, "homepage": "https://adjusttext.readthedocs.io/", "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["Phlya/adjustText"], "name": "Phlya/adjustText", "platform": ["python"], "pushed_at": "2026-06-08T16:47:54+00:00", "repo": "Phlya/adjustText", "stars": 1661, "tags": ["matplotlib", "label-placement", "plotting", "text-overlap"], "topics": ["graph", "matplotlib", "plot", "plotting", "text", "python"], "urls": [], "use_cases": ["label scatter plot points without overlapping text in matplotlib", "automatically reposition annotations on crowded plots", "avoid manual tweaking of text label positions in figures", "create publication-quality labeled charts for scientific papers", "replicate ggrepel-style label placement in Python"], "what_it_is": "adjustText is a small Python library that automatically adjusts the position of text labels in matplotlib plots to minimize overlaps between labels and data points. It iteratively repositions labels and is inspired by the ggrepel package for R/ggplot2.", "when_to_avoid": ["you are plotting with libraries other than matplotlib", "you need interactive drag-and-drop label placement", "you work primarily in R, where ggrepel is the native solution"], "when_to_choose": ["you use matplotlib and need many text labels placed without overlaps", "you want a simple pip-installable solution with good default results", "you need configurable iterative label adjustment for complex plots"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/adjusttext", "repo": "Phlya/adjustText", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.518849+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:44:36.485443+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9210b80024aee54d94ce5dc8320cc5059f19710f3566b99f8fdb6d92f79c382a", "fetched_at": "2026-08-28T04:05:18.518849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Phlya/adjustText"}, {"content_hash": "28220ea440fc959d5f71f5b0377c680526832cfe97ebc9576dc74ced9081488d", "fetched_at": "2026-08-29T11:17:25.200274+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/adjusttext/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 55}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3889, "days_push": 86, "days_rel": 86, "gap_med": 585, "n_releases_24m": 2}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}