Plot ML Figure
SkillDev toolsGuides your agent to pick the right Python plotting library and style before writing machine learning charts.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Plot ML Figure skill
About this skill
Pick how to write a figure before custom plot code. Trigger when explore-ml-data, evaluate-ml-pipeline, or audit-ml-pipeline is about to save or display a chart, or when the user asks for a plot. Not a session owner. Not for skore/sklearn Display plots that already exist on a report.
What this skill tells your AI
The instructions your AI receives, as published by probabl-ai/skills in skills/plot-ml-figure/SKILL.md and read by ahel’s review.
Worker. Callers own the file and the turn. Do not git end-turn.
Details: references/when.md.
Sequence
- If a skore report or sklearn Display already plots this, use it. Stop.
- If interactivity (hover, zoom, pan) is the requirement:
Plotly Express. Write
<caller-figure-dir>/<slug>.htmlwithinclude_plotlyjs=True(inline, offline).explore-ml-datausesdata_analysis/. Do not overwrite that caller’s owned HTML (e.g.data_analysis_<slug>.html). The caller embeds<iframe src="<slug>.html" width="100%" height="640"></iframe>in its markdown beside the implication. Do not add kaleido unless the user asked to export a static image. No Dash. Do not use a CDN. - If the plot is statistical on a tidy DataFrame (distribution,
categorical compare, relationship, heatmap, pairplot, facet):
seaborn figure-level when a notebook will display it
(
displot,relplot,catplot,pairplot,heatmapviaFacetGrid/ axes only if already on a grid). Not aplt.subplotsloop and not aforover columns with a trailingg. One figure-level call as the last expression; facet withcol=/col_wrap. Save PNG, leave the figure/grid as the last expression. Neverplt.close. - If it is a simple Series/DataFrame
bar/line/hist/areafrom the index or a few columns, no statistical overlay:df.plot(...). Save the figure (ax.figure.savefig(...)), leaveax.figure(or the axes) visible. Neverplt.close. - Else matplotlib. Last resort. In a notebook still save and
display; do not
plt.close.
Notebook cells: save for the caller markdown and show the
figure in the notebook. plt.close is for non-notebook scripts
only (evaluate/audit scratch probes if they are not notebooks).
Polars → pandas at the plot boundary. Missing import →
add-python-package if installed; else name the package and
return. api get before new symbols.
Missing this skill from a caller → that caller one-line skips and still follows this tree.
Stop conditions
- Do not write a long matplotlib script for a hist, box, or bar of a Series.
- Do not load
choose-python-libraryfor matplotlib vs seaborn vs plotly. - Do not
pixi add/uv add/env add. - Do not install plotly on the default EDA path.
- Do not
plt.closea figure that should appear in a notebook.
Signals
- GitHub stars
- 132
- Forks
- 9
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
plot-ml-figure- Source
- github.com/probabl-ai/skills