has2k1/plotnine

A Grammar of Graphics for Python

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 38 minutes ago
Added to GitGenius on September 14th, 2026
Created on April 24th, 2017
Open Issues & Pull Requests: 78 (+0)
GitHub issues: Enabled
Number of forks: 254
Total Stargazers: 4,759 (+0)
Total Subscribers: 67 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 21.4 hours
Mean response time: 46.5 days
90th percentile: 14.3 days
Tracked items: 190

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Practically every issue opened in the past year has drawn a reply. 90% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "upstream-bug" is answered fastest, typically in about an hour, while "Documentation" waits about 7 days. 82% of issues opened in the past year have been closed, leaving a working backlog. Three people close 90% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 39
New in 7 days: 0
Closed in 7 days: 2
Avg open age: 853 days
Stale 30+ days: 37
Stale 90+ days: 33

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Feature (42)
  • bug (41)
  • Enhancement (32)
  • Question (29)
  • Documentation (20)
  • Layout (14)
  • meta (13)
  • Plot Composition (11)

Most active issues this week

Detailed Description

plotnine is a grammar of graphics implementation for Python that brings the declarative plotting approach of ggplot2 to Python users. It allows developers to compose plots by explicitly mapping variables in a dataframe to visual characteristics such as position, color, and size, building complex visualizations incrementally through a layered syntax.

The tool solves the problem of creating custom plots that would otherwise require significant manual effort or workarounds. Rather than thinking in terms of plot types, the grammar of graphics approach lets you think in terms of data mappings and visual encodings. You start with a base layer, add geometric objects, apply statistical transformations, adjust scales and coordinates, and refine themes—each step building on the previous one. This makes both simple plots straightforward to create and complex plots easier to reason about.

Developers familiar with ggplot2 in R will find the API immediately recognizable, which means the ggplot2 documentation can supplement plotnine's own when needed. The tool suits projects where exploratory data analysis, publication-quality graphics, or data-driven storytelling is central. It works well for analysts and data scientists who want to avoid the cognitive load of remembering different APIs for different plot types and instead rely on a consistent, composable system.

The project maintains an active testing infrastructure that compares generated images against baseline references to catch regressions, with tolerance for minor text rendering variations across systems. Development activity shows ongoing engagement with bug reports and fixes, and the maintainers actively solicit contributions in the form of example documentation that demonstrates either simple plots requiring non-obvious techniques or plots that tell a data analytic story. The project welcomes bug reports and pull requests from contributors who discover issues or can implement fixes.