Skip to content
Back to skills

Statistical Visualizations

ASecurity

"Build and troubleshoot ManimML statistical, probability,

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
datapythonbashapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill statistical-visualizations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Statistical Visualizations?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Statistical Visualizations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-statistical-visualizations/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-statistical-visualizations)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: statistical-visualizations
description: "Build and troubleshoot ManimML statistical, probability,
  decision-tree, MCMC, Gaussian, and matplotlib-image visualizations with safe
  CPU-first recipes."
disable-model-invocation: true
metadata:
  disco-role: operating
  package: manim_ml
  sub-skill-role: statistical-probability-visualization
license: MIT
---

# Statistical visualizations with ManimML

Use this sub-skill when a task asks for ManimML scenes or helper code involving statistical or probability visualizations:

- scikit-learn decision-tree diagrams from a fitted `DecisionTreeClassifier.tree_`.
- Iris-style two-feature scatter plots and decision-surface overlays.
- Metropolis-Hastings sampling checks, MCMC axes, and compact chain animations.
- 2-D Gaussian/probability mobjects.
- Converting matplotlib/seaborn figures into Manim `ImageMobject` objects.

Route neural-network layer diagrams, forward-pass animations, dropout, and CNN/image-layer workflows to the `neural-network-visualization` sub-skill instead.

## Required runtime assumptions

The target Python environment should import Manim Community, ManimML, NumPy, Pillow, SciPy, matplotlib, seaborn, scikit-learn, and tqdm. These workflows are CPU workflows. Full video rendering is optional and may additionally require the usual Manim system rendering stack.

For headless execution, set matplotlib to the Agg backend before creating figures:

```python
import matplotlib
matplotlib.use("Agg", force=True)
```

## First checks

Run the bundled helper from this sub-skill directory to verify package-level construction without rendering:

```bash
python scripts/build_statistical_visualizations.py --help
python scripts/build_statistical_visualizations.py --example sampler --iterations 12
python scripts/build_statistical_visualizations.py --example decision-tree --max-depth 2
```

`--example all` runs the compact sampler, decision-tree, MCMC axes, Gaussian, and matplotlib-image construction checks. These checks synthesize their own tiny data or icons and do not require repository example assets.

## Capability map

| Need | Use | Details |
| --- | --- | --- |
| Fitted scikit-learn tree diagram | `DecisionTreeDiagram(sklearn_tree, feature_names=..., class_images_paths=...)` | Leaves require image paths in the current implementation. Use generated temporary icons or caller-provided class images. |
| Decision areas over a 2-D feature plane | `compute_decision_areas(tree_classifier, maxrange, x=0, y=1, n_features=2)` | Compute rectangles first; only build a Manim surface after confirming finite ranges and compatible axes. |
| Iris-style dataset scatter | `IrisDatasetPlot(iris)` | Designed for sklearn's iris object and the first two features. Treat full rendering as optional. |
| Metropolis-Hastings sampler | `metropolis_hastings_sampler(...)` | Required smoke path. Returns samples, an empty warm-up array, and proposals. |
| MCMC axes/animations | `MCMCAxes(...)` | Construct axes and proposal/chain animations with tiny iteration counts before rendering. |
| Gaussian probability overlay | `GaussianDistribution(axes, mean=..., cov=..., dist_theme="gaussian")` | Use 2-D mean/covariance matching the axes. |
| Matplotlib figure as Manim image | `convert_matplotlib_figure_to_image_mobject(fig, dpi=...)` | Use Agg, close figures after conversion, and avoid remote datasets. |

## Safe operating pattern

1. Decide whether the output is only a static Manim object, an animation object, or a rendered video/still.
2. Keep data tiny for construction checks: two iris features, shallow trees, 10-25 MCMC iterations, and small generated icons/images.
3. Import `DecisionTreeSurface` and `IrisDatasetPlot` from `manim_ml.decision_tree.decision_tree_surface`; do not rely on outdated re-export assumptions.
4. For decision-tree leaves, provide three valid image files when using the iris classifier. If no real images are available, generate simple colored square icons.
5. For MCMC animation construction, provide `true_samples` if calling `visualize_metropolis_hastings_chain_sampling`; it builds a background density image.
6. Render only after construction succeeds. Prefer Manim low quality (`-ql`) or still-image (`-s`) flags for first renders.

## Reference files

- `references/api-reference.md` - public API signatures, return expectations, and source limitations.
- `references/workflows.md` - self-contained decision-tree, MCMC, Gaussian, and matplotlib recipes.
- `references/troubleshooting.md` - common errors and recovery steps.
- `scripts/build_statistical_visualizations.py` - CPU-first smoke helper with no default render step.

Files in this skill

  • SKILL.md4.5 KB
  • references/api-reference.md8.7 KB
  • references/troubleshooting.md6.4 KB
  • references/workflows.md9.1 KB
  • scripts/build_statistical_visualizations.py13.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.