library-agnostic, ai-powered python plotting examples.
pyplots is an AI-powered platform for Python data visualization that automatically discovers, generates, tests, and maintains plotting examples. Browse hundreds of plots across all major Python libraries - matplotlib, seaborn, plotly, bokeh, altair, plotnine, pygal, highcharts, and lets-plot.
Community-driven, AI-maintained - Propose plot ideas via GitHub Issues, AI generates the code, automated quality checks ensure excellence. Zero manual coding required.
- AI-generated code - All implementations automatically generated and maintained by AI
- Compare libraries - View matplotlib, seaborn, plotly side-by-side for the same plot
- Always current - AI agents continuously update examples with latest library versions
- Natural language search - Find plots by asking "show correlation between variables"
- AI quality review - Claude evaluates every plot against quality standards (score ≥ 50 required)
- Open source - Community proposes ideas via Issues, AI generates the code
Specification-first design: Every plot starts as a Markdown spec (library-agnostic), then AI generates implementations for all 9 supported libraries.
plots/scatter-basic/
├── specification.md # Library-agnostic specification
├── specification.yaml # Tags, created, issue, suggested
├── metadata/ # Per-library metadata (quality scores, preview URLs)
│ ├── matplotlib.yaml
│ └── ...
└── implementations/
├── matplotlib.py
├── seaborn.py
├── plotly.py
└── ... (6 more)
Issue-based workflow: GitHub Issues as state machine for plot lifecycle. Status tracked via live-updating table (no sub-issues). Each library generates in parallel, creating PRs to a feature branch.
AI quality review: Claude evaluates generated plots. Score ≥ 90 → immediate merge. Score < 90 → repair loop (max 3 attempts). After 3 attempts: ≥ 50 → merge, < 50 → failed.
See docs/reference/ for details.
Backend: FastAPI • PostgreSQL • SQLAlchemy • Python 3.10+
Frontend: React 19 • Vite • TypeScript • MUI
Plotting: matplotlib • seaborn • plotly • bokeh • altair • plotnine • pygal • highcharts • lets-plot
Infrastructure: Google Cloud Run • Cloud SQL • Cloud Storage
Automation: GitHub Actions
AI: Claude (code generation + quality review)
Most plotting libraries are fully open source. Note these exceptions:
- Highcharts: Free for non-commercial use. Commercial use requires a license from highcharts.com
pyplots/
├── plots/ # Plot specs + metadata + implementations
├── prompts/ # AI agent prompts
├── api/ # FastAPI backend
├── app/ # React frontend
├── core/ # Shared business logic
├── automation/ # Workflow scripts (sync, labels)
├── tests/ # Test suite (unit, integration, e2e)
├── alembic/ # Database migrations
├── docs/ # Documentation
└── .github/workflows/ # GitHub Actions
For details, see Repository Structure
- Vision - Product vision and mission
- Contributing - How to add/improve specs and implementations
- Workflows - Automation flows and label system
- Reference - API, database, repository structure
We welcome contributions! All code is AI-generated - you propose ideas, AI implements them.
Three ways to contribute (from pyplots.ai or GitHub):
| Action | When to Use | From pyplots.ai |
|---|---|---|
| Suggest Spec | Propose a new plot type | "suggest spec" link in catalog |
| Report Spec Issue | Problem with a specification | "report issue" link on spec page |
| Report Impl Issue | Problem with a library implementation | "report issue" link on impl page |
How it works:
- You create Issue (or click link on pyplots.ai)
- AI validates and processes your input
- Maintainer reviews and approves
- AI generates/fixes the code
- Automated quality review ensures excellence
Important: Don't submit code directly! If a plot has quality issues, it means the spec needs improvement, not the code.
See contributing.md for details.
See Development Guide for local setup instructions.
MIT License - see LICENSE file for details.
- Website: pyplots.ai
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Stats: Public Analytics
Built by Markus Neusinger