phuetz/code-buddy/data-charts

Claude Code and agent skill by phuetz/code-buddy

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Analyze tabular data and render charts (bar, line, scatter, pie, histogram) to PNG/SVG with pandas + matplotlib. Use whenever the user wants to plot, chart, graph, or visualize data from a CSV/JSON/Excel file or inline numbers.

Install

npx vskill@latest install phuetz/code-buddy/data-charts

SKILL.md

Analyze data & render charts with pandas + matplotlib

Turn tabular data (CSV/JSON/Excel/inline) into a real chart image using the open-source pandas + matplotlib libraries. Work in visible steps and verify the image was written before reporting.

Getting the data when it's NOT in a file (e.g. "France GDP over 10 years")

When the user asks to chart something you must look up rather than read from a file, gather the numbers FIRST with your normal tools — your own knowledge, or a quick web_search — then hard-code them as inline Python lists. Do NOT fetch from an external API inside the Python script (urllib/requests): sandboxed network calls routinely time out (the 30 s command limit), which makes you give up and fall back to a much worse ASCII/text "chart". Inline numbers → matplotlib → a real PNG is fast and reliable. Only read from the network when the user explicitly gives you a data URL and it's known-fast.

Preflight (extras-tier libs)

These libs are optional and not in the default build. Always check first:

bash
python3 - <<'PY'
try:
import pandas, matplotlib # noqa: F401
except ModuleNotFoundError as e:
raise SystemExit(
f"{e.name} not installed. Run `npm run prepare:python:extras` in cowork/ "
"to enable the data-charts skill (pandas + matplotlib)."
)
print("data-charts deps OK")
PY

Workflow (one step at a time)

  1. Load the data with pandas (read_csv / read_json / read_excel), or

build a DataFrame from inline numbers.

  1. Inspect: print df.head() and df.describe() (or the shape) so the data

is visibly understood before plotting.

  1. Plot: use the non-interactive Agg backend (matplotlib.use("Agg"),

set before importing pyplot — there is no display), build the chart, add a title + axis labels, and savefig(path, dpi=144, bbox_inches="tight").

  1. Verify: assert os.path.getsize(path) > 0 and print the path + size.
  2. Report the saved image path and a one-line insight from the data.

Quality conventions

  • Always set matplotlib.use("Agg") before import matplotlib.pyplot — the

app has no X display; the interactive backend would crash.

  • Label axes and give every chart a title; use a legend when >1 series.
  • Prefer tight_layout() / bbox_inches="tight" so labels aren't clipped.
  • Save PNG by default (144 dpi); SVG when the user wants a vector.

Example

bash
python3 - <<'PY'
import os
import pandas as pd
import matplotlib
matplotlib.use("Agg") # headless — set before pyplot
import matplotlib.pyplot as plt
df = pd.read_csv("sales.csv") # columns: month, revenue
print(df.head()); print(df.describe())
fig, ax = plt.subplots(figsize=(8, 4.5))
ax.bar(df["month"], df["revenue"], color="#3b82f6")
ax.set_title("Monthly revenue"); ax.set_xlabel("Month"); ax.set_ylabel("Revenue ($)")
fig.tight_layout()
out = "revenue.png"
fig.savefig(out, dpi=144, bbox_inches="tight")
assert os.path.getsize(out) > 0, "chart image is empty"
print(f"wrote {out} ({os.path.getsize(out)} bytes); peak month = "
f"{df.loc[df['revenue'].idxmax(), 'month']}")
PY

Notes

  • The chart image is an artifact — surface its path so the GUI can preview it.
  • For quick stats without a chart, df.describe() / df.groupby(...).agg(...).
  • To put a chart into an Excel/Word/PowerPoint file, hand the saved PNG to the

xlsx/docx/pptx create skills.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
44
Repository forks
12
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/phuetz/code-buddy/data-charts/badge)](https://verified-skill.com/skills/phuetz/code-buddy/data-charts)

Something wrong with this skill or its page? Tell us.