Tufte viz
Edward Tufte data visualization principles for AI coding agents. Data-ink ratio, chartjunk, small multiples, sparklines, and more.
npx -y skills add pjsny/tufte-viz --skill tufte-vizAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Design and critique data visualizations using Edward Tufte's principles. Use when creating, reviewing, or styling charts, graphs, dashboards, sparklines, or any data visualization. Applies to Recharts, ECharts, Chart.js, matplotlib, Plotly, D3.js, and SVG. Enforces Tufte principles (data-ink ratio, direct labeling, range-frame axes, small multiples) plus screen-first standards (accessibility, responsive, dark mode).
SKILL.md
4.1 KB, as published. Nobody here has run it
Tufte Visualization Ideation
Apply Edward Tufte's principles to design clear, honest, high-density data visualizations.
Workflow
For new visualizations:
-
Clarify the data story
- What comparisons matter?
- What's the key insight to communicate?
- Who's the audience?
-
Select approach using Tufte principles:
- High comparison need -> Small multiples
- Dense data -> Consider data tables, sparklines
- Time-series -> Line charts with minimal grid
- Part-to-whole -> Avoid pie charts; prefer bar/table
-
Design with data-ink in mind
- Start minimal, add only what's necessary
- Every element must earn its ink
- Default to grayscale; use color purposefully
-
Apply the Tufte test (see references/tufte-principles.md)
For critiquing visualizations:
-
Check graphical integrity
- Calculate lie factor if proportions seem off
- Verify baselines and scales
- Look for 3D distortion
-
Identify chartjunk
- Decorative elements
- Heavy grids
- Unnecessary 3D effects
- Moire patterns
-
Evaluate data-ink ratio
- What can be erased?
- What's redundant?
-
Suggest improvements with specific before/after recommendations
For writing chart code:
-
Apply universal rules from
references/implementation-guide.md- 22 concrete defaults: no legends, no gridlines, range-frame axes, gray-first color, serif fonts
- Chart type guidance, color quick reference, validation checklist
-
Load ONE library rule file matching the target:
Library Rule file Essential config Recharts rules/recharts.md<CartesianGrid stroke="none" />, remove<Legend />ECharts rules/echarts.mdsplitLine: { show: false },legend: { show: false }Chart.js rules/chartjs.mdgrid: { display: false },plugins.legend.display: falsematplotlib rules/matplotlib.mdspines['top'].set_visible(False),font.family: serifPlotly rules/plotly.mdshowgrid=False,plot_bgcolor='#fffff8'D3/SVG rules/d3-svg.md.domain { display: none }, no background rects -
Validate against the checklist in
references/implementation-guide.md
Reference Files
Theory (why)
references/tufte-principles.md— core principles from Visual Display of Quantitative Information: lie factor, data-ink, chartjunk, small multiples, integrity.references/analytical-design.md— extensions from Envisioning Information, Visual Explanations, and Beautiful Evidence: the 6 principles of analytical design, sparklines, layering & separation, micro/macro, range-frames, causality, confections.
Practice (how)
references/implementation-guide.md— 22 universal rules, color/typography quick reference, chart type guidance, validation checklist.references/anti-patterns.md— detection table for common violations with per-library fix patterns.rules/*.md— library-specific code snippets and configuration (one file per library).
Quick checklist:
- Lie Factor ~ 1.0 (no visual distortion)
- Maximum data-ink ratio
- Zero chartjunk
- Direct labels, not legends
- Answers "compared to what?"
- Shows causality or mechanism where relevant
- Multivariate (not over-reduced)
- Words, numbers, images integrated — not segregated
- Reveals multiple levels of detail (micro + macro)
- Layering: primary data dominates, secondary recedes
- Accessible (contrast, dual encoding, aria-label)
- Responsive (adapts at narrow viewports)
- Appropriate data density