Plot ML Figure
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.


