Skip to main content

chart-builder

Use this skill whenever the user asks to visualize, chart, plot, or graph data (bar, line, scatter, histogram, pie) from a CSV, table, or DataFrame. It gives the agent prebuilt, parameterized matplotlib functions so charts are produced faster and more reliably — with consistent styling and sane defaults — instead of hand-writing matplotlib each time.

Source facts

Repository
microsoft/cat-agent-skills
Last source activity
August 6, 2026 at 12:35
Detected SKILL.md language
English
Stars
84
Forks
106

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
6 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
chart-builder
description
Use this skill whenever the user asks to visualize, chart, plot, or graph data (bar, line, scatter, histogram, pie) from a CSV, table, or DataFrame. It gives the agent prebuilt, parameterized matplotlib functions so charts are produced faster and more reliably — with consistent styling and sane defaults — instead of hand-writing matplotlib each time.
Generate charts from tabular data via the bundled `scripts/charts.py` toolkit. Each function takes a DataFrame or a file path plus the columns to plot, and saves a PNG (returning the path). It handles theming, figure sizing, label rotation, NaN dropping, legend placement, and saving. ## Instructions 1. Provide the data source: a pandas DataFrame, or a path to a `.csv` / `.tsv` / `.json` file. 2. Call the function for the chart you need, passing the column names: - `bar(data, x, y)` — one value per category (`horizontal=True` for barh) - `grouped_bar(data, x, y, group)` — value per category split by `group` (`stacked=True` to stack) - `line(data, x, y, group=None)` — value over an ordered axis, one line per `group` - `scatter(data, x, y, group=None, size=None)` — two numeric columns - `histogram(data, y, bins=20, group=None)` — distribution of one column - `pie(data, x, y, donut=False)` — share of `y` per category `x` 3. Optional keyword args on every chart: `title`, `xlabel`, `ylabel` (derived from column names if omitted), `out` (default `"chart.png"`; pass `None` to skip saving), `dpi` (default `150`), `figsize`, `palette`. 4. The function returns the saved image path. See `references/cheatsheet.md` for full signatures and a chart-selection table. ## Usage Import: ```python from charts import bar, line, pie bar("sales.csv", x="region", y="revenue", title="Revenue by region", out="revenue.png") ``` CLI: ```bash python scripts/charts.py grouped_bar sales.csv \ --x region --y revenue --group quarter --stacked --out by_quarter.png ``` ## Bundled files - `scripts/charts.py` — the toolkit: `load_data`, `apply_theme`, `save_fig`, and six chart functions (`bar`, `grouped_bar`, `line`, `scatter`, `histogram`, `pie`), plus a CLI. Depends on `matplotlib` and `pandas`; runs headless. - `references/cheatsheet.md` — chart-selection table, full signatures, and copy-paste CLI examples. - `assets/sample_sales.csv` — a small demo dataset that exercises every chart. ## Defaults - Colorblind-friendly palette and a shared theme across charts. - Figure size, x-label rotation, and legend placement adapt to the data. - Rows with missing values in the plotted columns are dropped before drawing. - Output is a saved PNG at 150 DPI by default (override `out` and `dpi`).
View on GitHub