Skip to content
Back to skills

Data Visualization Master

ASecurity

Master skill for creating, critiquing, and improving data visualizations — charts, plots, and figures for analysis, publications, blogs, slides, and dashboards. Synthesizes the Nature Methods "Points of View" series (Bang Wong, Martin Krzywinski, and coauthors) with the evidence-tagged rules of the evident-charts skill (Cleveland & McGill graphical perception, Tufte, and modern visualization research). Load for any chart/figure/plot request in matplotlib, seaborn, plotly, ggplot2, Altair/Vega...

  • 39 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 30, 2026
researchpythongonodeexpressgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 30, 2026

npx -y skills add ericmjl/skills --skill data-visualization-master --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Data Visualization Master?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Data Visualization Master
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ericmjl-data-visualization-master/badge)](https://www.skillsdirectory.com/skills/ericmjl-data-visualization-master)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: data-visualization-master
description: >-
  Master skill for creating, critiquing, and improving data visualizations —
  charts, plots, and figures for analysis, publications, blogs, slides, and
  dashboards. Synthesizes the Nature Methods "Points of View" series (Bang
  Wong, Martin Krzywinski, and coauthors) with the evidence-tagged rules of
  the evident-charts skill (Cleveland & McGill graphical perception, Tufte,
  and modern visualization research). Load for any chart/figure/plot request
  in matplotlib, seaborn, plotly, ggplot2, Altair/Vega-Lite, D3, or any other
  visualization library; for "critique this figure", publication-figure and
  multi-panel figure design, color/encoding/layout/typography questions; and
  to consult or extend the literature bibliography that backs every rule.
  This skill is self-improving: a scheduled GitHub Actions research agent
  reads new visualization literature and proposes cited updates as pull
  requests.
license: MIT
metadata:
  author: Eric Ma
  version: "1.0.0"
  sources: "references/sources.md"
---

# Data Visualization Master

The entry-point skill for visualization work. It carries the distilled,
literature-backed principles; the sibling skill `evident-charts` (same repo)
carries the deep rule engine, per-chart-type references, and deterministic
check scripts. When both are installed, use this skill for direction and
`evident-charts` for execution detail. When alone, this skill is sufficient
for sound default decisions.

## What It Does

- Directs any chart-making or figure-critique task through a fixed workflow:
  analyze the data, state the takeaway, choose the form, build, check, review,
  deliver.
- Applies principles from three evidence layers: the Nature Methods
  *Points of View* series (43 columns, 2010–2016; relaunched June 2026 under
  Helena Jambor, cited per rule), experimental
  graphical-perception research, and practitioner consensus from newsroom and
  statistical-agency style guides.
- Enforces honesty constraints (integrity rules) that may not be broken for
  aesthetics.
- Maintains a literature-backed bibliography (`references/sources.md`) that a
  scheduled research agent extends via pull requests — see
  `references/research-protocol.md`.

## Usage

- Any visualization request: load this skill first. State the takeaway before
  writing plotting code.
- Chart-specific decisions (chart-type selection tables, palettes, presets,
  lint scripts): open `skills/evident-charts/SKILL.md` if installed.
- "Why does this rule exist?": look up the citation key in
  `references/sources.md`, or the distillation in
  `references/points-of-view.md`.
- Reviewing an automated research PR: follow "Reviewing research PRs" below.

## How It Works

1. **Analyze.** Load the data. Print summary statistics. Confirm units, scope,
   sample sizes, and that parts sum to totals. Check for sentinel codes,
   duplicates, and preliminary last points before any plotting.
2. **Brief.** One line: `Takeaway: <claim the data supports> | Audience:
   <lay/expert> | Destination: <blog/slide/paper/poster/dashboard>`. The
   takeaway becomes the title [MSG1]. Ask at most two questions, only if the
   takeaway is ambiguous.
3. **Choose the form** from the takeaway and data shape, not from habit
   [MSG2]. Comparison → bars/dot plots; trend over ordered time → lines;
   relationship → scatter; composition (few parts) → stacked bars; precise
   lookup → table. Position on a common scale is the most accurately decoded
   encoding; length second; color area and angle last [ENC1].
4. **Build** in the project's stack. Apply the core principles below and the
   scientific-figure rules if the destination is a paper, thesis, or report.
5. **Check.** If `evident-charts` is installed, run its `scripts/check_chart.py`
   (matplotlib) or `scripts/check_palette.py` (any other stack). Otherwise run
   the manual checklist in "Integrity" and "Accessibility" below.
6. **Review the rendered image, never the code.** Look at the actual pixels
   [FIG6]. Fix overlapping/clipped text, labels that don't match data, missing
   units, and legend/label redundancy. Iterate until clean.
7. **Deliver** with: the brief; paths to image + code; analysis choices a
   reader should know (transforms, exclusions, minimum n); data source; alt
   text [A1]; any rule broken and why.

## Core principles

Tags: `[E]` experimental evidence — break only with a stated reason;
`[P]` practitioner consensus — break for a clear reason; `[T]` taste/convention
— bend freely. Citation keys resolve in `references/sources.md`; POV keys are
distilled in `references/points-of-view.md`. A project style guide overrides
`[T]` rules and the house look, never `[E]` integrity rules.

### Message

- MSG1 `[E]` The title states the takeaway, not the topic ("Battery-electric
  share tripled in four years", not "EV sales by country"). Subtitle carries
  qualifications: what, units, when. Cite: [B16], [K18], [A22]; POV: [W10-Design].
- MSG2 `[E]` Pick the chart form from the question the reader must answer.
  Match the form to the task, then simplify [W11-Simplify]. Cite: [CM84],
  [V91], [PSPI21].
- MSG3 `[P]` One chart, one message. Split a figure trying to say three things
  into a panel figure (see "Publication figures"). POV: [W11-Overview],
  [W12-VizBio].

### Encoding

- ENC1 `[E]` Encoding accuracy ranking, best to worst: position on a common
  scale > length > angle/slope > area > volume > color saturation. Reserve
  pies/donuts for the rare single-part-to-whole glance; never for comparison
  or trends. Cite: [CM84], [HB10], [T14]; POV: [W10-Design].
- ENC2 `[E]` Lines only over an ordered axis (usually time). Bars for discrete
  categories. Never connect unordered categories with a line. Cite: [Z99];
  POV: [W10-Design].
- ENC3 `[P]` Encode at most ~4 data dimensions per chart. Beyond that, use
  small multiples instead of stuffing more channels into one plot. Cite:
  [PSPI21]; POV: [G12-Plane], [K13-Multi].

### Color

- COL1 `[E]` Color-blind-safe palettes by default (e.g., the Okabe–Ito
  palette [OI02]); ~8% of men cannot distinguish common red-green pairs.
  Never encode meaning in red vs green alone. Cite: [B12], [M09], [OI02];
  POV: [W11-Blindness].
- COL2 `[P]` At most ~4 categorical hues per chart (plus grays). One accent
  color on gray when a single element is the story. Cite: [HE12], [GAF];
  POV: [W10-Color].
- COL3 `[E]` For quantitative data, sequential colormaps (lightness ramps) for
  ordered data, diverging colormaps anchored on a meaningful midpoint (zero,
  control) for signed data. Never rainbow/jet for magnitude. Cite: [B07],
  [C20]; POV: [G12-MapColor].
- COL4 `[P]` Prefer no color at all when gray + position carries the message;
  color is the loudest channel and competes with the data. POV: [W11-Avoiding].
- COL5 `[P]` Test the figure in grayscale for print destinations. POV:
  [W11-Avoiding], [RDB14 rule 6].

### Layout and composition

- LAY1 `[E]` Gestalt principles do the grouping work: proximity, similarity,
  connection, and enclosure imply relatedness before a single label is read.
  Place related marks close; separate panels clearly. Cite: PSPI21;
  POV: [W10-Gestalt1], [W10-Gestalt2].
- LAY2 `[P]` Negative space is a design element: white space around and inside
  figures directs attention and improves perceived quality. Do not fill every
  region with ink. POV: [W11-NegSpace].
- LAY3 `[P]` Visual hierarchy: the reader's eye should land on the data first,
  then title, then annotation, then axes/grid — in that order. Make
  navigational elements (axes, ticks, grids) visually quiet. POV: [W11-Layout],
  [K13-Axes], [W10-Salience].
- LAY4 `[P]` Simplify to clarify: remove gridlines, borders, boxes, and
  legends that carry no information ("chartjunk"); maximize the data-ink
  share. Cite: [T83], [A22]; POV: [W11-Simplify].

### Text and elements

- TXT1 `[E]` Direct-label the data instead of forcing legend lookups when
  labels fit; drop the legend when direct labels exist. Cite: PSPI21;
  POV: [K13-Labels].
- TXT2 `[E]` Minimum ~12 px text at display size; journal figures: text must
  be legible at final printed column width (typically 8 pt minimum after
  scaling). POV: [W11-Typo].
- TXT3 `[P]` Sans-serif faces for figures; consistent type family across a
  panel set; label weights and sizes create hierarchy. POV: [W11-Typo],
  [K13-Style].
- TXT4 `[P]` Arrows and callouts guide, sparingly and consistently; symbols
  must stay distinct when overplotted. POV: [W11-Arrows], [KW13-Symbols].
- TXT5 `[P]` Axes, ticks, and grids are navigational furniture: unobtrusive,
  consistent, never louder than the data. Light gridlines help reading; heavy
  boxes do not. POV: [K13-Axes]; cite: [HB10].

### Integrity (breakable never)

- INT1 `[E]` Bars start at zero. Truncated bar baselines exaggerate
  differences and deceive a majority of readers even after warnings. Line
  charts may use a non-zero range when stated. Cite: [P15], [C20], [Y21],
  [WSB22].
- INT2 `[E]` No dual y-axes; no inverted value axes; no 3D effect charts;
  aspect ratio must not distort the perceived effect. Cite: [P15], [F08];
  POV: [G12-3D].
- INT3 `[E]` Show uncertainty when comparing groups or claiming differences:
  intervals or n; never rank tiny samples. Cite: [H20], [CG14], [HRA15];
  POV: [SG14-Bars].
- INT4 `[P]` Every number on a chart must be computed or verified against the
  data; name the real data source; flag preliminary values. Cite: evident-charts
  H11, H17, SRC1.

### Storytelling and audience

- STO1 `[P]` A figure is an argument, not a data dump: order panels and
  emphasis so the reader arrives at the intended conclusion. POV: [K13-Story],
  [W11-SalienceRelevance].
- STO2 `[P]` Sketch by hand before coding when the design is not obvious;
  iterate on paper where iteration is cheapest. POV: [W12-Pencil].
- STO3 `[P]` Design is a process: define audience and message → sketch →
  draft → critique → refine; budget for two critique rounds. POV:
  [W11-Process]; cite: [RDB14 rule 10].

## Publication figures

Extra rules when the destination is a journal, thesis, or technical report:

- FIG1 `[P]` Panels are labeled (a, b, c, …) in reading order; every panel is
  referenced from the caption; panel labels use one consistent style and
  position. POV: [W11-Overview], [K13-Labels].
- FIG2 `[P]` The caption is self-sufficient: a reader who sees only figure +
  caption gets the takeaway, methods needed to decode the display, definitions
  of all symbols/abbreviations, and the statistical basis (n, test, error
  bars) [SG14-Bars], [H20], [CG14].
- FIG3 `[P]` The overview figure: the first figure of a paper carries the
  study's core concept legibly to a skimming reader; detailed evidence lives
  in later figures. POV: [W11-Overview].
- FIG4 `[T]` Figure width targets the journal's column system (single ~89 mm,
  double ~183 mm for Nature journals); export vector (PDF/SVG) for line art,
  ≥300 dpi raster for images; fonts embedded.
- FIG5 `[P]` Redesign pass: compare the draft against the points of review
  checklists — mismatched visual weight, decorative noise, missing units,
  legend distance, unreadable color scales — and fix in one batch.
  POV: [W11-Review1], [W11-Review2].
- FIG6 `[E]` Judge the figure by looking at the rendered pixels, not the code
  that made it. Cite: MatPlotAgent, [Y24].
- FIG7 `[T]` Domain plot conventions win at equals: genome browsers for
  genomic loci, heat maps with clustered rows for expression matrices,
  UpSet/intersection plots beyond three sets. POV: [N12-Genome],
  [G12-Heat], [LG14-Sets].

## Accessibility (always on)

- ACC1 `[E]` Never rely on color alone to carry a distinction: add shape,
  pattern, label, or direct annotation. Cite: WCAG 1.4.1; POV: [W11-Blindness].
- ACC2 `[E]` Text contrast ≥ 4.5:1 against its background; marks ≥ 3:1.
  Cite: WCAG 1.4.3/1.4.11; cite: [C22-Chartability].
- ACC3 `[P]` Provide alt text stating the takeaway and the trend, not
  "a chart of X". Cite: [L22].

## The literature backbone and self-improvement

Every rule above carries a citation key. The key resolves in
`references/sources.md`, which holds verified bibliographic entries — including
the complete Nature Methods *Points of View* corpus (43 columns, 2010–2016,
all DOIs resolved via Crossref; relaunched June 2026 under Helena Jambor —
see `references/sources.md`) and the experimental literature behind the
`[E]` tags.
Long-form distillations of the Points of View columns live in
`references/points-of-view.md`.

This skill improves itself on a schedule: a GitHub Actions workflow
(`.github/workflows/dataviz-research.yml`) runs the `pi` coding agent, which
searches the visualization literature, verifies sources, and opens pull
requests proposing cited rule updates. The agent's operating manual is
`references/research-protocol.md`; the run history is `references/research-log.md`.

Reviewing research PRs:

1. Check that every new/changed rule line carries a citation key that exists in
   `references/sources.md`, and every new source entry has a resolvable DOI or
   URL plus a provenance mark (`(2nd)`, `(preprint)`, `[UNVERIFIED]` where
   applicable).
2. Check the diff touches only `skills/data-visualization-master/`.
3. Confirm tag changes are evidence-backed: a rule may move `[T]`→`[P]`→`[E]`
   only with a new citation, and `[E]`→`[T]` only with a stated contradiction
   or retraction.
4. Merge if satisfied; the agent never merges its own PRs.

## Files

| File | Read when |
|---|---|
| `references/points-of-view.md` | Distilled guidance from each Nature Methods Points of View column, with citations |
| `references/sources.md` | Bibliography: full citations and DOIs behind every rule key |
| `references/research-protocol.md` | The research agent's operating manual (also the spec for hand-run literature updates) |
| `references/research-log.md` | Append-only history of research runs and what they proposed |
| `skills/evident-charts/` (sibling) | Deep rule engine: chart-type selection, palettes, presets, check scripts, per-library themes |

## Requirements

- None to read the principles. To run `evident-charts` check scripts: Python 3
  with matplotlib installed in the project (palette check needs Python 3 only).
- To run the research automation: `pi` (Node ≥ 22.19), an Anthropic API key,
  and optionally an Exa API key — configured as repository secrets
  (`ANTHROPIC_API_KEY`, `EXA_API_KEY`); see the workflow file.

Files in this skill

  • SKILL.md14.2 KB
  • references/points-of-view.md13 KB
  • references/research-log.md1.7 KB
  • references/research-protocol.md5.6 KB
  • references/sources.md13.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…