Makie Dynamic
by KristianHolme
Makie animations, dashboards, and interactive visualizations using Observables, events, and UI widgets.
Skill Details
Repository Files
1 file in this skill directory
name: makie-dynamic description: Makie animations, dashboards, and interactive visualizations using Observables, events, and UI widgets.
Makie Dynamic
Use Makie (not a specific backend) for all plotting. Assume all features are available.
Reactivity with Observables
- Use
Observablevalues as the single source of truth for dynamic state. - Prefer
liftor@liftto derive dependent data reactively. - After in-place mutation of an observable value (e.g.
obs[] .= ...), callnotify(obs). - Use
on(obs)for side effects andliftfor pure transformations.
Animations and Recording
- For recording, use
record(fig, "out.mp4", iterator) do frame ... endand update observables inside the loop. - Avoid manual
sleeploops or@asynctimers for animation. - Use
events(fig).tickfor frame-aligned updates in interactive sessions.
UI Widgets
- Sliders: bind
slider.valueto observables; use@liftto connect to plot data. - Buttons: use
on(button.clicks)for actions (play/pause, reset, step). - Toggles: gate updates by
toggle.active[]to enable/disable behavior. - Menus/Textboxes: use
selectionorvalueobservables to drive state.
Events and Interaction
- Use
events(fig)orevents(ax)for mouse/keyboard/scroll events. - If needed, return
Consume(true)to stop lower-priority handlers.
Dashboards and Structure
- Keep dashboard state in a small set of observables (or a struct holding them).
- Split UI and plot construction into functions that accept
GridPositionorAxis. - For larger dashboards, consider using
Makie.SpecApito build declarative layouts.
Performance Notes
- Update plot data in-place when possible, and notify explicitly.
- Avoid rebuilding axes/plots each frame; update existing plot objects.
- For heavy pipelines, evaluate whether Makie’s compute pipeline tools are appropriate.
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
