Chart Rendering
Documentschart-renderingChart Rendering is an Agent Skill for documents published in the agentscope-ai/agentscope-java repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
Visualise the result of an analysis as a chart (line, bar, area, scatter, etc.). Use when the user asks to "plot...", "chart...", "show me the trend of...", "visualise...", or when a numerical result has more than ~10 rows and would be easier to read as a picture. Produces an image file plus the script that generated it.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/agentscope-ai/agentscope-java/blob/HEAD/agentscope-examples/agents/agentscope-dataagent/src/main/resources/shared/agents/data-agent/skills/chart-rendering/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/chart-rendering, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
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 toknowledge/cache/<topic>.csvso it can be re-rendered. -
Render with matplotlib. Write the script to a file under
scratch/charts/<topic>.pyand execute it viashell_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) underknowledge/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 user should take away, and any caveat (incomplete latest data point, outliers excluded, etc.). -
Keep the script reproducible. The chart file is the artefact; the script under
scratch/charts/<topic>.pyis the source of truth. If the user asks for a tweak ("can we use a log y-axis?"), edit the script and re-run — do not regenerate from scratch.
Anti-patterns
- ❌ Pie charts with > 5 slices.
- ❌ Charting raw counts when proportions are what the user actually asked.
- ❌ A chart whose axes have no labels or unit.
- ❌ Embedding the image without 2 sentences of interpretation.
When to delegate
If the user wants a multi-chart dashboard with narrative around it (e.g. "build
me a weekly product health deck"), spawn the report-writer sub-agent —
this Skill is for individual charts.