data-viz
Guide for creating publication-quality figures for academic papers and presentations.
Skill by custom
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pascalamiet-data-viz
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: presentations, design, data, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/data-viz
What's inside
- Skill name
data-viz- Description
- Guide for creating publication-quality figures for academic papers and presentations. Use when: making charts, plots, or figures in R (ggplot2), Python (matplotlib/seaborn), or Stata; asking about figure design principles; preparing output for journals or slides.
- License
- MIT
- Metadata
- author: custom · version: 1.0.0
- Instructions
- 304 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Data Visualization for Academic Work
You are an expert in data visualization for academic economics and social science. Your goal is to produce publication-quality figures: honest, clear, and precise. You know the conventions of top journals, the design principles behind good charts, and the code to implement them in R, Python, and Stata.
## When to Apply
Use this skill when:
- Making a figure for a paper, thesis chapter, or presentation
- Choosing the right chart type for a given data structure
- Applying journal-specific formatting requirements
- Debugging or improving an existing plot
- Building event study plots, coefficient plots, maps, or distribution figures
- Asking how to make a figure look more professional
---
## Core Design Principles
### 1. Every element must earn its place
Remove anything that does not convey information: unnecessary gridlines, 3D effects, chartjunk, redundant legends, decorative borders. Tufte's data-ink ratio: maximize the share of ink devoted to data.
### 2. Choose the right chart type
| Data structure | Chart type |
|---|---|
| Distribution of one variable | Histogram, density, CDF, violin |
| Two continuous variables | Scatter, binscatter, regression fit |
| Time series | Line chart |
| Coefficients + CIs | Coefficient plot (dot + whisker) |
| Event study / DiD | Event study plot with CIs |
| Categorical comparison | Bar chart (horizontal preferred), dot plot |
| Heterogeneity across subgroups | Faceted panels or grouped dot plot |
| Maps / geographic data | Choropleth (with careful color scale) |
| Joint distribution | Binscatter, hexbin, contour |
**Avoid:** pie charts (use bar), 3D plots (use 2D), dual y-axes (use facets or normalize), stacked bars when the message is about individual components.
### 3. Axes and scales
- **Always label axes** with variable name and units
- **Start y-axis at zero** for bar charts showing totals; not required for line charts showing change
- **Log scales** when data spans orders of magnitude or when proportional change is the story
- **Avoid truncated axes** that exaggerate small differences
- **Tick marks** should be round numbers; 4–6 ticks is usually right
### 4. Color
- Use color purposefully: to encode a dimension, not for decoration
- **Sequential palettes** (low → high): `viridis`, `Blues`, `YlOrRd` — for continuous variables
- **Diverging palettes**: `RdBu`, `PRGn` — for data with a meaningful midpoint (e.g., positive/negative)
- **Qualitative palettes**: `Set1`, `Okabe-Ito`, `ColorBrewer` — for categorical groups
- **Colorblind-safe**: always use Okabe-Ito or viridis for multi-group figures
- **Grayscale check**: does the figure still work if printed in black and white?
- Max 4–5 colors in a single figure; use shape or linetype as a second channel
### 5. Text and typography
- **Font size**: axis labels ≥ 11pt, tick labels ≥ 9pt; ensure readability at print size
- **Figure title**: informative, not generic ("Effect of X on Y by subgroup" not "Figure 3")
- **Notes**: include data source, sample definition, and what error bars represent
- **Annotations** > legends: when possible, label lines/groups directly on the figure
### 6. Error bars and uncertainty
- Always show uncertainty for estimates: 95% CI standard; add 90% CI for significance reading
- For coefficient plots: show both 90% and 95% CI (different line widths or colors)
- State in the note what the bars represent: "Bars represent 95% confidence intervals"
- **Never** show error bars without explaining them
---
## Journal-Specific Requirements
### General economics journals (AER, QJE, JPE, RES, Econometrica)
- Figures in black and white or grayscale (color often allowed online, but check)
- EPS or PDF format preferred; TIFF at 300+ DPI accepted
- Figure dimensions: usually max width ~6 inches (single column) or 6.5 inches (full page)
- No figure title in the figure itself — caption goes in the paper
- Caption ends with period
### Health/applied journals (JAMA, NEJM, AEJ series)
- Color often allowed but must be colorblind-safe
- Specific font requirements (check journal style guide)
### For presentations / slides
- Increase all font sizes by ~4pt relative to paper figures
- Use color more freely
- Simpler is better — one message per slide figure
- Wider aspect ratio (16:9 widescreen)
---
## Code Templates
### R — ggplot2
#### Base theme for papers
```r
library(ggplot2)
library(scales)
theme_paper <- function(base_size = 12) {
theme_bw(base_size = base_size) +
theme(
panel.grid.minor = element_blank(),
panel.grid.major = element_line(color = "grey90", linewidth = 0.3),
panel.border = element_rect(color = "grey40"),
axis.ticks = element_line(color = "grey40"),
legend.position = "bottom",
legend.title = element_text(size = base_size - 1),
legend.key.size = unit(0.8, "lines"),
strip.background = element_rect(fill = "grey95", color = "grey40"),
plot.caption = element_text(size = base_size - 2, hjust = 0, color = "grey40")
)
}
```
#### Coefficient / dot-whisker plot
```r
library(dplyr)
# df should have: term, estimate, conf.low95, conf.high95, conf.low90, conf.high90
ggplot(df, aes(x = estimate, y = reorder(term, estimate))) +
geom_vline(xintercept = 0, linetype = "dashed", color = "grey50") +From pascalamiet/ai-setup, MIT.
More from pascalamiet/ai-setup
- 0.462score
grill-me
pascalamiet
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
SkillCFreshness: C★ 1Claude Code +9 - 0.432score
bibtex
custom
Manage, clean, and format BibTeX bibliography files for academic papers.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
create-slides
custom
Scaffold a new LaTeX Beamer slide deck from a standard template.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
debug
custom
Systematic debugging workflow for any language or environment.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
empirical-workflow
custom
Scaffold and guide empirical economics projects from data to tables.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
initialize
custom
Create a shared .ai/AI.md context file in the current working directory by inspecting the project, then create only the agent-specific symlinks the user needs…
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
literature-search
custom
Systematic literature search for academic economics research.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
new-project
custom
Scaffold a new empirical research project with a standard directory structure.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
commit
pascalamiet
Execute git commit with conventional commit message analysis, intelligent staging, and message generation.
SkillDFreshness: D★ 1Claude Code +9 - 0.432score
create-paper
custom
Scaffold a new LaTeX economics paper from a standard template.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
notebooklm
pascalamiet
Complete API for Google NotebookLM - full programmatic access including features not in the web UI.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
codex
pascalamiet
Use when you want Codex CLI in headless mode via `codex exec` for non-interactive coding, repository edits, code review, automation, structured output, or…
SkillDFreshness: D★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Mar 5, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.0
- License
- MIT
- Repository
- github.com/pascalamiet/ai-setup
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from custom
- 0.567score
judgment-day
custom
Trigger: judgment day, dual review, adversarial review.
SkillAFreshness: AClaude Code +9 - 0.561score
linear-issue
custom
Trigger: linear issue, linear ticket, linear task, linear project, linear initiative.
SkillAFreshness: AClaude Code +9 - 0.561score
zenhub-issue
custom
Trigger: zenhub, zenhub epic, zenhub goal, zenhub task, planning issue.
SkillAFreshness: AClaude Code +9 - 0.561score
github-pr
custom
Trigger: PR description, pull request body, open a PR.
SkillAFreshness: AClaude Code +9 - 0.561score
github-issue
custom
Trigger: github issue, bug report, feature request, open an issue.
SkillAFreshness: AClaude Code +9 - 0.561score
md-style-guide
custom
Trigger: producing Markdown, document, report, README, planning file, SDD artifact, issue, PR, or release body.
SkillAFreshness: AClaude Code +9
Cite this page
data-viz skill. Agent Mart. https://agentmart.dev/skills/pascalamiet-data-viz (last updated 2026-10-24)