Visualise the result of an analysis as a chart (line, bar, area, scatter, etc.).
SkillScore65Maintained
Automatic
◆Data Analyst pack
Last verified 9/28/2026
What it changes
Passed 14 of 22 test cases with the skill, and 10 of 22 without it.
Without skill46%
With skill65%
Checks it passed that the model alone missed
Saves the graphic with dpi set to 150.
Saves the visualization script under scratch/charts/.
Saves the cleaned dataframe to knowledge/cache/ as a CSV file.
and 3 more in the full report
6 fixed11 passed either way8 still failing1 broke
Pass-rate lift
+19 pp
Tokens
-33%
Agent turns
0%
Response time
-54%
Model gemini-3.6-flashMeasured 9/28/2026v117 of 26 cases passed with skill · 22 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 6
Prompt
We are saving the plotted graphic file for our weekly metrics summary. What image format, DPI setting, and bounding box configuration should be passed to plt.savefig()?
What was checked, without and with the skill
Checked
Without skill
With skill
Saves the graphic with dpi set to 150.
Missed
Passed
Sets bbox_inches to tight when saving the figure.
Passed
Passed
case-18 · gemini-3.6-flash · 9/28/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md60 linessingle file
Chart Rendering Skill
Repeatable SOP for turning a result set into a chart that actually communicates
the point.
Steps
Match chart type to question. Decide before drawing:
Question shape
Chart
"How does X change over time?"
Line (single series) or multi-line
"Composition / share of total"
Stacked bar, or 100% stacked area
"Comparison across a small set of categories"
Bar (horizontal if labels are long)
"Relationship between two numeric variables"
Scatter
"Distribution of a single variable"
Histogram or box plot
"Cumulative total"
Area
If none fit, ask the user which view they want — do not default to "any chart
will do".
Prepare the data. The query result from the [[sql-analysis]] Skill should
already be tidy (one row per data point, one column per dimension). If not,
reshape first using pandas (pivot, melt, groupby). Save the cleaned
frame to knowledge/cache/<topic>.csv so it can be re-rendered.
Render with matplotlib. Write the script to a file under
scratch/charts/<topic>.py and execute it via shell_run. Conventions:
Title — one sentence answering the question (not "Untitled chart").
Axes — label both, include units (Active users (count),
Date (UTC)).
Legend — include only if there is more than one series.
Colours — use the matplotlib default palette unless the user has a
stated brand colour in knowledge/style.md.
Output — save as PNG (bbox_inches='tight', dpi=150) under
knowledge/charts/<topic>.png.
Show and explain. In the assistant reply, link the saved image with a
markdown image embed () and write
2–3 sentences interpreting it — what the chart shows, the one thing the