chart

Interactive web charts: line, bar, candle, scatter, with HTML and screenshot output. Use when visualizing data for analysis or BI (e.g. plot BTC vs gold last year, bar chart of revenue by quarter, compare two return series).

By starchild-ai-agent · 3,884 installs

npx skills add starchild-ai-agent/official-skills --skill chart

Source repository · Upstream listing

Chart — Project Based Interactive Charting Generate interactive chart pages with Apache ECharts. Each chart lives in a dedicated project folder under output/chart html/ , making it easy to reuse and iterate. When to Use Any time the user wants a visual chart: price charts, comparisons, dashboards, business analytics, etc. Architecture ECharts (CDN) for rendering ECharts native export ( getDataURL ) + canvas merge for reliable PNG output Project based storage : one folder per chart project No gallery mode : all artifacts stay in the project folder Project Structure (Required) Each chart project should follow: Example folder name: btc 90d 20260401 Workflow Step 1: Pick template or custom layout Available templates: Template Best for line.html Time series trends, multi series comparisons bar.html Category comparisons, rankings pie.html Composition / share breakdown candlestick.html OHLCV price charts scatter.html Correlation, distribution dashboard.html KPI cards + 2×2 multi chart grid radar.html Multi dimension scoring heatmap.html Matrix / calendar intensity dual axis.html Two series with very different scales (e.g. market cap vs stablecoin supply) — left and right Y axes, each with its own label color multi panel.html Stacked panels sharing one X axis (e.g. price + volume + RSI) — single ECharts instance, tooltip/zoom synced across all panels waterfall.html Incremental contribution breakdown (e.g. P&L attribution, budget variance) — positive/negative bars stacked on a floating base Step 2: Create project folder Use create project(name, description, data sources) from scripts/build chart.py . Step 3: Build and save chart page Use either: build chart(template name, ...) build chart custom(...) Then save as index.html in the project folder: save chart(html, project dir=project dir) Step 4: Save reproducible assets Also save: save generate script(script content, project dir) → generate.py save data(data, project dir) → data.json project README is created by create project(...) Step 5: Serve preview Use project root serving (recommended): Then open: /preview/<id /<project name /index.html Important behavior in v3.0.1: chart server.py now rewrites preview prefixed static paths internally ( /preview/<id /... → /... ) before filesystem lookup. This guarantees the preview iframe resolves the real project index.html instead of falling back to root directory listing. Keep project pages under output/chart html/<project /index.html (do not serve output/chart html directly as a static preview without chart server.py ). Step 6: Export image Two modes: 1. User wants web page + image : click "💾 Save Image" in page toolbar, saves to current project as screenshot.png 2. User wants image only : call screenshot chart(project dir) (Playwright) and send screenshot.png directly Toolbar Requirements Every chart page must include these buttons: Do not include gallery entry. Key Files File Purpose skills/chart/scripts/base styles.css Base dark theme CSS skills/chart/scripts/base export.js Export helpers: download/copy/save to project skills/chart/scripts/build chart.py Project creation, HTML build, data/script save, screenshot skills/chart/scripts/chart server.py Static server + /save chart API skills/chart/templates/ .html Reusable chart templates output/chart html/<project / All generated chart artifacts Notes Embed data directly in HTML ( const DATA = ... ) to avoid iframe CORS issues. For multi chart pages, register all chart instances in window.CHART INSTANCES . Use meaningful project names ( topic range date ) for easy lookup.