算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
visualization-jupyter【设计与创意】Create Vaex histograms, heatmaps, scatter plots, expression plots, saved Matplotlib outputs, and high-level Jupyter widget workflows.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when the task is to plot or explore Vaex data with df.viz / expression.viz, save Matplotlib output, or work with Vaex's Jupyter widget layer. If the task still needs DataFrame creation, inspection, filtering, or basic lazy semantics before plotting, route that part to ../dataframe-core/SKILL.md. Keep plotting and display separate: if the user needs custom counts, means, correlations, binning, groupby grids, or other precomputed statistics behind a plot, route that work to ../expressions-analytics/SKILL.md; if the user needs REST plot endpoints or remote plot serving, route it to ../serving-remote/SKILL.md.
df.viz.histogram, df.viz.heatmap, df.viz.scatter, and expression.viz.histogram for plotting. Treat df.plot1d and direct df.scatter / df.plot aliases as compatibility shims that may warn; prefer the df.viz namespace in new guidance.../expressions-analytics/SKILL.md and use this sub-skill only for rendering or display choices.Agg backend and show=False. Use hardcopy= on histogram/heatmap when possible; for scatter, save the current figure explicitly after plotting. Do not require a notebook frontend for terminal checks.selection, limits, shape, what, f, normalize_axis, and facet-style syntax as plotting controls. Treat what as a small expression language such as count(*), mean(x), sum(x), std(x), or correlation(a, b); if the syntax does not parse, fall back to the troubleshooting reference.df.viz.scatter only for small DataFrames or explicitly bounded selections. If the row count is large, choose histogram/heatmap with aggregated grids instead of eager scatter plotting.df.widget accessors at a high level: histogram, heatmap, data_array, expression, column, selection_expression, and progress widgets. Treat bqplot, ipyvolume, ipyleaflet, ipympl, ipyvuetify, ipywidgets, and xarray as frontend dependencies that may be present or absent.progress='widget' in notebook contexts, or rich tree progress when you need nested task detail. Keep the choice consistent with the execution environment.references/visualization-workflows.md: plotting recipes, expression plots, hardcopy/show, facets, and display-vs-computation guidance.references/jupyter-widgets.md: df.widget concepts, widget stack, interactive plot patterns, and frontend behavior.references/troubleshooting.md: deprecation warnings, invalid what/facet syntax, scatter row limits, headless display errors, missing Matplotlib or frontend packages, and progressbar mismatches.Run the bundled smoke check after editing this sub-skill or when diagnosing an environment:
python scripts/plot_smoke.py --help
python scripts/plot_smoke.py
The script creates tiny in-memory data only, uses public Vaex APIs, writes noninteractive Matplotlib PNGs with the Agg backend, and asserts that each saved file is non-empty.