Chart chooser
The largest community-driven library of Agent Skills (SKILL.md + scripts/references/examples) for Claude, Codex, Gemini CLI, Cursor and friends.
npx -y skills add JayRHa/AgentSkills --skill chart-chooserAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 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
Selects the most appropriate chart type for a given dataset and analytical question, then produces a clean, honest, well-labeled visualization spec. Use this skill when a user asks "what chart should I use", "how should I visualize this data", "which graph fits", "make a chart for X", "is a pie chart right here", "how do I show change over time / comparison / distribution / correlation / part-to-whole", or when reviewing an existing chart for clarity and honesty. Covers chart-type decision-making, encoding choices (axis, color, size), labeling, axis-truncation ethics, accessibility, and avoiding misleading visuals.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.4 KB, as published. Nobody here has run it
Chart Chooser
Overview
This skill turns a dataset plus an analytical question into the right chart, and ensures the result is clean, accurate, and not misleading. It covers two jobs:
- Choose — map the question intent and data shape to a chart type.
- Polish — apply encoding, labeling, axis, color, and honesty rules so the chart reads correctly at a glance.
Keywords: data visualization, chart type, graph selection, bar chart, line chart, scatter plot, histogram, heatmap, pie chart, dashboard, axis truncation, misleading charts, color accessibility, data-ink, encoding.
Use this skill whenever someone needs to decide how to show data, or wants an existing visual critiqued.
Workflow
Follow these steps in order. Do not jump to a chart type before clarifying intent and data shape.
- Identify the question intent. Pick the dominant one (a chart should answer one question well):
- Comparison (which is bigger/smaller across categories)
- Trend / change over time
- Distribution (shape, spread, outliers of one variable)
- Relationship / correlation (two+ numeric variables)
- Part-to-whole (composition of a total)
- Ranking (ordered comparison)
- Geospatial (values across places)
- Flow / part-to-whole over stages
- Profile the data shape. Note for each variable: type (categorical / ordinal / quantitative / temporal / geographic), cardinality (number of distinct values), and whether values can be summed to a meaningful total (needed for part-to-whole).
- Match intent + shape to a chart. Use the decision table in
references/chart-decision-matrix.md. Resolve ties with the "pick the simplest that answers the question" rule. - Choose encodings. Assign data fields to position, length, color, and size using the accuracy ranking in Best Practices. Position/length beat color/area for quantitative accuracy.
- Apply honesty + clarity rules. Run the checklist in
references/clarity-and-honesty-checklist.md: axis baselines, sorting, direct labels, color accessibility, decluttering. - Produce the output. Either describe the spec (chart type, x, y, color, sort, annotations) or generate code. Use
scripts/suggest_chart.pyto get a programmatic recommendation from a quick data profile. - Self-review. Verify the chart answers the original question in under 5 seconds and contains no misleading element.
Quick Decision Cheats
- Over time, continuous: line chart (one or few series), area only when part-to-whole over time matters.
- Compare categories: bar chart (horizontal if labels are long or many). Sort by value unless order is inherent (time, age bands).
- Distribution of one number: histogram; box/violin to compare distributions across groups.
- Two numbers, relationship: scatter plot; add trend line only if a relationship is real and labeled.
- Part-to-whole, few parts (2-4), single total: consider a stacked bar; a pie is acceptable only with ≤4 slices and clear differences.
- Part-to-whole, many parts: sorted bar of the parts, not a pie.
- Two categorical dimensions + a value: heatmap.
- Ranking emphasis: sorted horizontal bar; lollipop to reduce ink.
- Never use a second y-axis to imply correlation; it can fabricate relationships.
Best Practices
- Encoding accuracy order (most to least precise): position on common scale → position on non-aligned scale → length → angle/slope → area → color saturation → color hue. Encode the most important quantity with the most accurate channel.
- Start bars at zero. Bar length encodes magnitude; a non-zero baseline lies. Line charts may use a non-zero baseline if change, not magnitude, is the point — label it clearly.
- Sort meaningfully. Sort categorical bars by value. Keep natural order for time, age, or other ordinals.
- Direct-label lines and important points instead of forcing legend lookups. Limit to ~5-7 series before a chart becomes spaghetti.
- One idea per chart. Split a busy chart into small multiples rather than overloading one canvas.
- Color with purpose. Categorical = distinct hues; sequential = single-hue ramp; diverging = two hues around a meaningful midpoint. Test for color-vision deficiency; never rely on red/green alone — add labels, shapes, or patterns.
- Maximize data-ink. Remove chartjunk, heavy gridlines, 3D effects, and redundant decoration.
- Title states the takeaway ("Revenue grew 30% in Q3"), not just the variable ("Revenue").
- Annotate context — reference lines, target, average, or events that explain the shape.
Common Pitfalls
- Pie chart with many or similar slices — humans compare angles poorly. Use a sorted bar.
- Truncated bar-chart y-axis exaggerating tiny differences.
- Dual y-axes implying a causal/correlated relationship that the scaling invented.
- 3D bars/pies that distort proportions.
- Rainbow/jet color ramps for sequential data (perceptually non-uniform and inaccessible).
- Too many categories or series, producing unreadable spaghetti.
- Unsorted bars when the question is "which is biggest".
- Using area/bubble size for precise comparison (area is hard to judge).
- Missing units, missing axis labels, or unlabeled aggregation (sum vs average).
- Connecting points with a line when the x-axis is categorical, not continuous.
Supporting Files
references/chart-decision-matrix.md— full intent × data-shape → chart-type matrix with notes and runners-up.references/clarity-and-honesty-checklist.md— pre-publish checklist for labeling, axes, color, accessibility, and avoiding deception.scripts/suggest_chart.py— stdlib Python tool: feed it a CSV (or a column profile) and the question intent; it recommends a chart type and encodings.examples/sales-by-region.md— worked example: messy request → chosen chart → clean spec → critique.