
Chart
Generate reproducible interactive ECharts pages with HTML, data snapshots, screenshots, and per-project folders for analysis and BI-style demos.
Install
npx skills add https://github.com/starchild-ai-agent/official-skills --skill chartWhat is this skill?
- Apache ECharts via CDN with line, bar, candle, and scatter templates
- Project folder under output/chart-html/ with index.html, generate.py, data.json, README, screenshot.png
- PNG export using ECharts getDataURL plus canvas merge
- Suited for price series, quarterly bars, and multi-series comparisons
- No gallery mode—artifacts stay inside each named chart project
Adoption & trust: 2.3k installs on skills.sh; 13 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
Build/frontend is the shelf because deliverables are self-contained chart web pages and assets, not backend ingestion jobs. Frontend matches ECharts HTML, project templates (line, bar, candle, scatter), and PNG export from the chart page.
Common Questions / FAQ
Is Chart safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Chart
# 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: ``` output/chart-html/ <project-name>/ index.html # chart page generate.py # generation script (for reproducibility) README.md # title / description / data source notes data.json # data snapshot screenshot.png # saved image ``` 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): ```python preview_serve( title="Chart Preview", dir="skills/chart/scripts", command="python3 chart_server.py /data/workspace/output/chart-html 7860", port=7860 ) ``` 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: ```html <div