/plotnine
plotnine static visualization (ggplot2 syntax for Python). Geoms, aesthetics, scales, coordinates, facets, themes. Use for static publication-quality figures with grammar-of-graphics syntax. For interactive charts use plotly; for maps use geopandas.
$ npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill plotnine --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/plotnine
Context preview
The summary Claude sees to decide when to auto-load this skill.
plotnine static visualization (ggplot2 syntax for Python). Geoms, aesthetics, scales, coordinates, facets, themes. Use for static publication-quality figures with grammar-of-graphics syntax. For interactive charts use plotly; for maps use geopandas.
SKILL.md
plotnine.SKILL.mdname: plotnine
description: >-
plotnine static visualization (ggplot2 syntax for Python). Geoms, aesthetics, scales, coordinates, facets, themes. Use for static publication-quality figures with grammar-of-graphics syntax. For interactive charts use plotly; for maps use geopandas.
metadata:
audience: research-coders
domain: python-library
library-version: "0.15.x"
skill-last-updated: "2026-03-26"
Plotnine Skill
plotnine static visualization library for Python, implementing the grammar of graphics (ggplot2 syntax). Covers geoms (point, line, bar, histogram, boxplot, smooth), aesthetics, scales, coordinates, facets, and themes. Use when creating static publication-quality figures with ggplot2-style syntax, producing charts for print or reports, or working with an R ggplot2 background. Prefer over plotly when static output is needed.
Quick reference for creating data visualizations with plotnine, a Python implementation of the grammar of graphics (ggplot2).
What is Plotnine?
plotnine is a data visualization library based on the **grammar of graphics**:
- **Declarative**: Describe what you want, not how to draw it
- **Layered**: Build plots by adding components with `+`
- **ggplot2 compatible**: Nearly identical syntax to R's ggplot2
- **Publication-ready**: Themes and customization for polished output
How to Use This Skill
Reference File Structure
| File | Purpose | When to Read | |------|---------|--------------| | `quickstart.md` | Installation, imports, basic syntax | Starting out | | `geoms.md` | Geometric objects (points, lines, bars) | Choosing chart types | | `aesthetics.md` | Mapping data to visual properties | Customizing appearance | | `scales-coords.md` | Scales, coordinates, positions | Axis/color control | | `facets-themes.md` | Multi-panel plots and styling | Layout and themes | | `gotchas.md` | Common errors and best practices | Debugging |
Quick Decision Trees
"I need to create a plot"
What kind of plot?
├─ Scatter plot (geom_point) → ./references/geoms.md
├─ Line plot (geom_line) → ./references/geoms.md
├─ Bar chart (geom_bar, geom_col) → ./references/geoms.md
├─ Histogram (geom_histogram) → ./references/geoms.md
├─ Box plot (geom_boxplot) → ./references/geoms.md
└─ Other geoms → ./references/geoms.md
"I need to customize appearance"
What to customize?
├─ Colors, sizes, shapes → ./references/aesthetics.md
├─ Axis limits/labels → ./references/scales-coords.md
├─ Color palettes → ./references/scales-coords.md
├─ Overall theme → ./references/facets-themes.md
├─ Title/labels → ./references/facets-themes.md
└─ Multiple panels (faceting) → ./references/facets-themes.md
"Something isn't working"
Common issues?
├─ Plot not showing → ./references/quickstart.md
├─ Column not found → ./references/gotchas.md
├─ Color not applying → ./references/aesthetics.md
├─ Unexpected grouping → ./references/gotchas.md
└─ Syntax errors → ./references/gotchas.md
File-First Execution in Research Workflows
**Important:** In data research pipelines (see `CLAUDE.md`), all visualizations are generated through **script files** in `scripts/stage8_analysis/`, not interactively. This ensures auditability and reproducibility.
**The pattern:** 1. Write plot code to `scripts/stage8_analysis/{step}_{plot-name}.py` 2. Execute via Bash with automatic output capture wrapper script 3. Validation results get automatically embedded in scripts as comments 4. If failed, create versioned copy for fixes
Closely read `agent_reference/SCRIPT_EXECUTION_REFERENCE.md` for the mandatory file-first execution protocol covering complete code file writing, output capture, and file versioning rules.
**See:**
- `agent_reference/WORKFLOW_PHASE4_ANALYSIS.md` — Stage 8 (Analysis & Visualization)
The examples below show plotnine syntax. In research workflows, wrap them in scripts following the file-first pattern.
---
Quick Reference
Basic Plot Pattern
from plotnine import ggplot, aes, geom_point
(
ggplot(df, aes(x="col_x", y="col_y"))
+ geom_point()
)Essential Imports
from plotnine import * # All components
from plotnine.data import mtcars # Built-in datasets
Common Geoms
| Geom | Use Case | |------|----------| | `geom_point()` | Scatter plots | | `geom_line()` | Line plots | | `geom_bar()` | Count bars | | `geom_col()` | Value bars | | `geom_histogram()` | Distributions | | `geom_boxplot()` | Box plots | | `geom_smooth()` | Trend lines |
Common Aesthetics
| Aesthetic | Controls | |-----------|----------| | `x`, `y` | Position | | `color` | Point/line color | | `fill` | Area fill color | | `size` | Point/line size | | `shape` | Point shape | | `alpha` | Transparency |
Saving Plots
p = ggplot(df, aes("x", "y")) + geom_point()
p.save("plot.png", width=10, height=8, dpi=300)Topic Index
| Topic | Reference File | |-------|---------------| | Installation | `./references/quickstart.md` | | Basic syntax | `./references/quickstart.md` | | Chart types | `./references/geoms.md` | | Data mapping | `./references/aesthetics.md` | | Color/shape values | `./references/aesthetics.md` | | Axis scales | `./references/scales-coords.md` | | Color scales | `./references/scales-coords.md` | | Coordinates | `./references/scales-coords.md` | | Faceting | `./references/facets-themes.md` | | Themes | `./references/facets-themes.md` | | Labels/titles | `./references/facets-themes.md` | | Common errors | `./references/gotchas.md` | | Best practices | `./references/gotchas.md` |
Citation
When this library is used as a primary analytical tool, include in the report's Software & Tools references:
> Kibirige, H. et al. plotnine: Grammar of graphics for Python [Computer software]. https://plotnine.org/
**Cite when:** plotnine is the primary visualization library producing figures included in the report. **Do not cite when:** Only used for quick exploratory plots not inclu
Read more
name: plotnine description: >- plotnine static visualization (ggplot2 syntax for Python). Geoms, aesthetics, scales, coordinates, facets, themes. Use for static publication-quality figures with grammar-of-graphics syntax. For interactive charts use plotly; for maps use geopandas. metadata: audience: research-coders domain: python-library library-version: "0.15.x" skill-last-updated: "2026-03-26"
Plotnine Skill
plotnine static visualization library for Python, implementing the grammar of graphics (ggplot2 syntax). Covers geoms (point, line, bar, histogram, boxplot, smooth), aesthetics, scales, coordinates, facets, and themes. Use when creating static publication-quality figures with ggplot2-style syntax, producing charts for print or reports, or working with an R ggplot2 background. Prefer over plotly when static output is needed.
Quick reference for creating data visualizations with plotnine, a Python implementation of the grammar of graphics (ggplot2).
What is Plotnine?
plotnine is a data visualization library based on the **grammar of graphics**:
- **Declarative**: Describe what you want, not how to draw it
- **Layered**: Build plots by adding components with `+`
- **ggplot2 compatible**: Nearly identical syntax to R's ggplot2
- **Publication-ready**: Themes and customization for polished output
How to Use This Skill
Reference File Structure
| File | Purpose | When to Read | |------|---------|--------------| | `quickstart.md` | Installation, imports, basic syntax | Starting out | | `geoms.md` | Geometric objects (points, lines, bars) | Choosing chart types | | `aesthetics.md` | Mapping data to visual properties | Customizing appearance | | `scales-coords.md` | Scales, coordinates, positions | Axis/color control | | `facets-themes.md` | Multi-panel plots and styling | Layout and themes | | `gotchas.md` | Common errors and best practices | Debugging |
Quick Decision Trees
"I need to create a plot"
What kind of plot? ├─ Scatter plot (geom_point) → ./references/geoms.md ├─ Line plot (geom_line) → ./references/geoms.md ├─ Bar chart (geom_bar, geom_col) → ./references/geoms.md ├─ Histogram (geom_histogram) → ./references/geoms.md ├─ Box plot (geom_boxplot) → ./references/geoms.md └─ Other geoms → ./references/geoms.md
"I need to customize appearance"
What to customize? ├─ Colors, sizes, shapes → ./references/aesthetics.md ├─ Axis limits/labels → ./references/scales-coords.md ├─ Color palettes → ./references/scales-coords.md ├─ Overall theme → ./references/facets-themes.md ├─ Title/labels → ./references/facets-themes.md └─ Multiple panels (faceting) → ./references/facets-themes.md
"Something isn't working"
Common issues? ├─ Plot not showing → ./references/quickstart.md ├─ Column not found → ./references/gotchas.md ├─ Color not applying → ./references/aesthetics.md ├─ Unexpected grouping → ./references/gotchas.md └─ Syntax errors → ./references/gotchas.md
File-First Execution in Research Workflows
**Important:** In data research pipelines (see `CLAUDE.md`), all visualizations are generated through **script files** in `scripts/stage8_analysis/`, not interactively. This ensures auditability and reproducibility.
**The pattern:** 1. Write plot code to `scripts/stage8_analysis/{step}_{plot-name}.py` 2. Execute via Bash with automatic output capture wrapper script 3. Validation results get automatically embedded in scripts as comments 4. If failed, create versioned copy for fixes
Closely read `agent_reference/SCRIPT_EXECUTION_REFERENCE.md` for the mandatory file-first execution protocol covering complete code file writing, output capture, and file versioning rules.
**See:**
- `agent_reference/WORKFLOW_PHASE4_ANALYSIS.md` — Stage 8 (Analysis & Visualization)
The examples below show plotnine syntax. In research workflows, wrap them in scripts following the file-first pattern.
---
Quick Reference
Basic Plot Pattern
from plotnine import ggplot, aes, geom_point
(
ggplot(df, aes(x="col_x", y="col_y"))
+ geom_point()
)Essential Imports
from plotnine import * # All components from plotnine.data import mtcars # Built-in datasets
Common Geoms
| Geom | Use Case | |------|----------| | `geom_point()` | Scatter plots | | `geom_line()` | Line plots | | `geom_bar()` | Count bars | | `geom_col()` | Value bars | | `geom_histogram()` | Distributions | | `geom_boxplot()` | Box plots | | `geom_smooth()` | Trend lines |
Common Aesthetics
| Aesthetic | Controls | |-----------|----------| | `x`, `y` | Position | | `color` | Point/line color | | `fill` | Area fill color | | `size` | Point/line size | | `shape` | Point shape | | `alpha` | Transparency |
Saving Plots
p = ggplot(df, aes("x", "y")) + geom_point()
p.save("plot.png", width=10, height=8, dpi=300)Topic Index
| Topic | Reference File | |-------|---------------| | Installation | `./references/quickstart.md` | | Basic syntax | `./references/quickstart.md` | | Chart types | `./references/geoms.md` | | Data mapping | `./references/aesthetics.md` | | Color/shape values | `./references/aesthetics.md` | | Axis scales | `./references/scales-coords.md` | | Color scales | `./references/scales-coords.md` | | Coordinates | `./references/scales-coords.md` | | Faceting | `./references/facets-themes.md` | | Themes | `./references/facets-themes.md` | | Labels/titles | `./references/facets-themes.md` | | Common errors | `./references/gotchas.md` | | Best practices | `./references/gotchas.md` |
Citation
When this library is used as a primary analytical tool, include in the report's Software & Tools references:
> Kibirige, H. et al. plotnine: Grammar of graphics for Python [Computer software]. https://plotnine.org/
**Cite when:** plotnine is the primary visualization library producing figures included in the report. **Do not cite when:** Only used for quick exploratory plots not inclu
📌 文档结构(2026-07-22 起): 本文件是中文默认入口 —— banner + badges + 信任面 + 9 阶段流水线速览 + 76 行合集总表。 每个合集的完整描述、按用途分组、精确数字、验证方法在 docs/CONTENT_ZH.md(扩展正文,总表行内的 → 直接跳转到对应锚点)。 English version: README-en.md · 中文扩展正文:docs/CONTENT_ZH.md · README-zh-CN.md 已弃用(重定向占位) 🌐 语言: English |
Other skills on auto-empirical-research-skills.
- /pipeline
Classical end-to-end empirical analysis workflow in the traditional Python econometric stack — pandas + numpy + scipy + statsmodels + linearmodels + pyfixest + rdrobust + econml + causalml + matplotlib/seaborn. **Defaults to economics empirical-paper style** (AER / QJE / AEJ) —
Open skill - /pipeline
Classical end-to-end empirical analysis workflow in the modern tidyverse + econometrics R ecosystem — dplyr + tidyr + haven + fixest + sandwich + lmtest + clubSandwich + AER + ivreg + did + bacondecomp + HonestDiD + eventstudyr + rdrobust + rddensity + Synth + gsynth + synthdid
Open skill - /pipeline
Classical end-to-end empirical analysis workflow in the traditional Stata ecosystem — native Stata + reghdfe + ivreg2 + csdid + did_imputation + eventstudyinteract + sdid + rdrobust + rddensity + synth + synth_runner + psmatch2 + teffects + ebalance + coefplot + esttab + asdoc +
Open skill - /00-Full-empirical-analysis-skill_StatsPAI
Use when the user asks to run a full empirical / causal analysis in Python — by default in the style of an applied economics paper (AER / QJE / JPE / ReStud / AEJ) with DID / RD / IV / SCM / DML / matching, written-out estimating equation + identifying assumption, Table 1 /
Open skill - /00.1-Full-empirical-analysis-skill_Python
Classical end-to-end empirical analysis workflow in the traditional Python econometric stack — pandas + numpy + scipy + statsmodels + linearmodels + pyfixest + rdrobust + econml + causalml + matplotlib/seaborn. **Defaults to economics empirical-paper style** (AER / QJE / AEJ) —
Open skill - /00.2-Full-empirical-analysis-skill_Stata
Classical end-to-end empirical analysis workflow in the traditional Stata ecosystem — native Stata + reghdfe + ivreg2 + csdid + did_imputation + eventstudyinteract + sdid + rdrobust + rddensity + synth + synth_runner + psmatch2 + teffects + ebalance + coefplot + esttab + asdoc +
Open skill

