Matplotlib
zLanqing/codex-claude-academic-skills
Low-level plotting library for full customization. An agent skill from zLanqing/codex-claude-academic-skills.
Picks the right chart type for a data question and applies readability rules like axis labels, colorblind palettes and legend restraint.
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .claude/skills/data-visualization && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .claude/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .agents/skills/data-visualization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .agents/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .cursor/skills/data-visualization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .cursor/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pipeshub-ai/pipeshub-ai.git --path backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .gemini/skills/data-visualization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .gemini/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .github/skills/data-visualization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .github/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pipeshub-ai/pipeshub-ai data-visualization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pipeshub-ai/pipeshub-ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization .opencode/skills/data-visualization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "data-visualization" agent skill from https://github.com/pipeshub-ai/pipeshub-ai/tree/main/backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization into .opencode/skills/data-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-visualization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
data-visualizationPicks the right chart type for a data question and applies readability rules like axis labels, colorblind palettes and legend restraint.
The chart type follows the shape of the question rather than habit: a bar chart for comparing a metric across categories, a line chart for a trend over time, a histogram or box plot for a distribution, a scatter plot for a relationship between two numeric variables, and a stacked bar chart over a pie chart once there are more than four or five slices to compare, since a pie chart only stays readable at two to four slices. When a question doesn't clearly map to one of these, it defaults to a bar or line chart rather than reaching for something more unusual.
Readability rules apply to every chart: always set a title and axis labels with units, only add a legend when there's more than one series to distinguish, never leave long category labels rotated to the point of being hard to read, use a colorblind-safe palette instead of a plain red-green contrast, and sort categorical bars by value unless the categories already have a natural order. matplotlib, seaborn, plotly and kaleido are already available in the sandbox, so no package install step is needed.
Read from SKILL.md and the folder at commit 8e3a124. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chart Type Selection Guide loads about 1.1k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 538 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pipeshub-ai/pipeshub-ai at commit 8e3a124, republished under its Apache-2.0 licence (© pipeshub-ai). 538 words, ~1,097 tokens.
.claude/skills/data-visualization/SKILL.md (or your agent's skills folder).matplotlib, seaborn, plotly, and kaleido are already installed in the sandbox — no install_packages call needed for any workflow below.
Pick the chart type from the question being asked, not from habit — a bar chart is not the universal default:
| Question shape | Chart type |
|---|---|
| Comparing a metric across categories ("revenue by region") | Bar chart (horizontal if category labels are long) |
| Trend over time ("revenue by month") | Line chart |
| Distribution of a single variable ("how are order sizes distributed") | Histogram, or box plot for comparing distributions across groups |
| Relationship between two numeric variables ("does price correlate with rating") | Scatter plot |
| Composition of a whole ("market share by segment") | Stacked bar chart — prefer this over a pie chart once there are more than ~4-5 slices, since angle/area comparisons get hard to read past that; a pie chart is defensible for 2-4 slices where the "parts of a whole" framing is the entire point |
If the question doesn't clearly map to one of these, default to a bar or line chart (whichever fits the data shape) rather than reaching for something more exotic — a chart the user immediately understands beats a more "interesting" one they have to puzzle over.
"Revenue ($K)", not just "Revenue") — a chart with unlabeled axes forces the viewer to guess what they're looking at."viridis"/"cividis" colormaps or seaborn's "colorblind" palette, rather than a default red/green distinction as the only signal between two series.matplotlib/seaborn → static PNG. The default choice for a chart that's going into a report, an email, or anywhere it just needs to be an image. Save via plt.savefig("chart.png", dpi=150, bbox_inches="tight") — the bbox_inches="tight" avoids clipped axis labels, a common failure mode. Saved files surface to the user automatically as artifacts; you don't need to do anything extra to hand them over.plotly (+ kaleido for static export) → when the user wants interactivity (hover tooltips, zoom/pan) or explicitly asks for an HTML output. Export interactive output via fig.write_html("chart.html"); if a static image is needed instead, fig.write_image("chart.png") (uses kaleido under the hood).matplotlib/seaborn unless the user's request specifically implies interactivity or a web-embeddable artifact — it's the lighter-weight choice and covers the vast majority of "make me a chart" requests.Look at what you actually plotted against what was asked — a common failure mode is generating a technically-valid chart of the wrong slice of data (e.g. totals instead of averages, or the wrong grouping column) because a data-analysis step upstream computed something adjacent to, but not exactly, what was requested. Re-read the user's question once more against the chart's title and axes before presenting it.
© pipeshub-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization of pipeshub-ai/pipeshub-ai.
Open the folder on GitHubat commit 8e3a124
Chart Type Selection Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chart Type Selection Guide this skillpipeshub-ai/pipeshub-ai | 3.8k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| MatplotlibzLanqing/codex-claude-academic-skills | 4.6k | 17 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Scientific Visualizationmims-harvard/OptimusKG | 146 | 19 repos | ~6.3k | Automated safety check: Pass | MIT | |
| SeabornzLanqing/codex-claude-academic-skills | 4.6k | 16 repos | ~4.9k | Automated safety check: Pass | BSD-3-Clause | |
| CJK Font Setup for Plotsxjtulyc/MedgeClaw | 617 | 1 repos | ~1.3k | Automated safety check: Pass | None | |
| Tufte Data Vizcaylent/tufte-data-viz | 222 | — | ~3.5k | Automated safety check: Pass | MIT |
zLanqing/codex-claude-academic-skills
Low-level plotting library for full customization. An agent skill from zLanqing/codex-claude-academic-skills.
mims-harvard/OptimusKG
Create publication figures with matplotlib/seaborn/plotly. An agent skill from mims-harvard/OptimusKG.
zLanqing/codex-claude-academic-skills
Statistical visualization with pandas integration. An agent skill from zLanqing/codex-claude-academic-skills.
xjtulyc/MedgeClaw
Detects a usable Chinese, Japanese or Korean font and configures matplotlib so chart labels, titles and legends render instead of showing empty boxes.
caylent/tufte-data-viz
A skill your agent uses when creating, reviewing, or styling charts, graphs, dashboards, sparklines, or any data visualization.
Oleafly/Oleafly
Create and audit truthful, accessible, publication-ready scientific figures with Matplotlib, Seaborn, or Plotly.
pipeshub-ai/pipeshub-ai
Creates and edits .xlsx workbooks with real Excel formulas rather than hardcoded computed values, defaulting to exceljs in TypeScript with a static formula-safety check.
pipeshub-ai/pipeshub-ai
Unpacks a .docx or .pptx into pretty-printed XML, lets you make small targeted edits, and repacks it into a file Office will open.
pipeshub-ai/pipeshub-ai
Picks the right library for generating a new PDF, filling an existing PDF form, or extracting text and tables, defaulting to Node where possible.
pipeshub-ai/pipeshub-ai
Creates new PowerPoint decks with pptxgenjs in TypeScript, reads existing decks with python-pptx, and applies a design-quality checklist so every slide has real visual hierarchy.
pipeshub-ai/pipeshub-ai
Loads, cleans, aggregates and joins tabular data with pandas under a verification rule: every number reported must be one that the code actually printed.
pipeshub-ai/pipeshub-ai
Routes a Word document request to the right approach: a TypeScript library for new files, XML editing for existing ones, and plain reading only.
Works with
Categories
Picks the right chart type for a data question and applies readability rules like axis labels, colorblind palettes and legend restraint. The chart type follows the shape of the question rather than habit: a bar chart for comparing a metric across categories, a line chart for a trend over time, a histogram or box plot for a distribution, a scatter plot for a relationship between two numeric variables, and a stacked bar chart over a pie chart once there are more than four or five slices to compare, since a pie chart only stays readable at two to four slices. When a question doesn't clearly map to one of these, it defaults to a bar or line chart rather than reaching for something more unusual.
Chart Type Selection Guide fits situations like: choosing a chart type for a specific data question; fixing an unreadable or poorly labeled chart; picking a colorblind-safe palette for a multi-series chart.
Run `npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a claude-code`. Or copy the skill folder (backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization in pipeshub-ai/pipeshub-ai) into .claude/skills/data-visualization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a codex`. Or copy the skill folder (backend/python/app/agents/agent_loop/skills/builtin_packs/data-visualization in pipeshub-ai/pipeshub-ai) into .agents/skills/data-visualization in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pipeshub-ai/pipeshub-ai --skill data-visualization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-visualization, .gemini/skills/data-visualization, .github/skills/data-visualization and .opencode/skills/data-visualization in your project.
SKILL.md names no scripts, command-line tools or credentials: Chart Type Selection Guide is instructions for the agent only. Our summary lists: matplotlib, seaborn and plotly available in the environment.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Chart Type Selection Guide is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chart Type Selection Guide: Matplotlib (zLanqing/codex-claude-academic-skills, 4.6k stars), Scientific Visualization (mims-harvard/OptimusKG, 146 stars), Seaborn (zLanqing/codex-claude-academic-skills, 4.6k stars) and CJK Font Setup for Plots (xjtulyc/MedgeClaw, 617 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pipeshub-ai (a GitHub organization) maintains it in pipeshub-ai/pipeshub-ai, which has 3,813 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: pipeshub-ai/pipeshub-ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.