SuperAPI AI 工具集

chart

数据与分析

查看项目

更新于 10-16 10:35

技能介绍

用途

Chart 用于生成交互式图表页面,底层渲染引擎为 Apache ECharts(通过 CDN 加载)。当用户需要可视化数据时使用,例如价格图表、数据对比、仪表盘、商业分析等。每个图表以项目为单位存放,便于复用与迭代。

主要能力

  • 支持多种图表模板:折线图(时序趋势、多序列对比)、柱状图(分类对比、排名)、饼图(构成/占比)、K 线图(OHLCV 价格)、散点图(相关性、分布)、仪表盘(KPI 卡片 + 2×2 多图网格)、雷达图(多维评分)、热力图(矩阵/日历强度)、双轴图(两个量级差异很大的序列,左右 Y 轴各自带标签颜色)、多面板图(共享一个 X 轴的堆叠面板,例如价格 + 成交量 + RSI,单一 ECharts 实例,提示与缩放同步)、瀑布图(增量贡献拆解,例如盈亏归因、预算差异,正负柱堆叠在浮动基线上)。
  • 支持自定义布局。
  • PNG 导出:使用 ECharts 原生导出(getDataURL)+ canvas 合并,输出可靠。
  • 项目制存储:每个图表项目一个文件夹。
  • 无图库模式:所有产物都保留在项目文件夹内。

使用方式

项目结构要求:

output/chart-html/
  <project-name>/
    index.html        # 图表页面
    generate.py       # 生成脚本(用于复现)
    README.md         # 标题 / 描述 / 数据来源说明
    data.json         # 数据快照
    screenshot.png    # 保存的图片

示例文件夹名:btc-90d-20260401

工作流程:

  1. 选择模板或自定义布局(可选模板如 line.html、bar.html、pie.html、candlestick.html、scatter.html、dashboard.html、radar.html、heatmap.html、dual-axis.html、multi-panel.html、waterfall.html)。
  2. 创建项目文件夹:使用 scripts/build_chart.py 中的 create_project(name, description, data_sources)。
  3. 构建并保存图表页面:使用 build_chart(template_name, ...) 或 build_chart_custom(...),然后通过 save_chart(html, project_dir=project_dir) 保存为项目文件夹中的 index.html。
  4. 保存可复现资产:save_generate_script(script_content, project_dir) → generate.py;save_data(data, project_dir) → data.json;项目 README 由 create_project(...) 创建。
  5. 提供预览服务(推荐使用项目根目录方式):
preview_serve(
  title="Chart Preview",
  dir="skills/chart/scripts",
  command="python3 chart_server.py /data/workspace/output/chart-html 7860",
  port=7860
)

然后打开:/preview/<id>/<project-name>/index.html

v3.0.1 重要行为:chart_server.py 现在会在文件系统查找之前,在内部重写带预览前缀的静态路径(/preview/<id>/... → /...)。这保证预览 iframe 能解析到真正的项目 index.html,而不是回退到根目录列表。请将项目页面保持在 output/chart-html/<project>/index.html(不要在没有 chart_server.py 的情况下直接把 output/chart-html 作为静态预览提供)。

  1. 导出图片,两种模式:
    • 用户需要网页 + 图片:点击页面工具栏中的“💾 Save Image”,保存到当前项目为 screenshot.png。
    • 用户只需要图片:调用 screenshot_chart(project_dir)(Playwright),直接发送 screenshot.png。

工具栏要求:每个图表页面必须包含以下按钮:

<div class="actions">
  <button onclick="downloadPNG(this)">📥 Download PNG</button>
  <button onclick="copyToClipboard(this)">📋 Copy Image</button>
  <button onclick="saveToProject(this)">💾 Save Image</button>
</div>

不要包含图库入口。

关键文件:

  • skills/chart/scripts/base-styles.css:基础深色主题 CSS。
  • skills/chart/scripts/base-export.js:导出辅助(下载/复制/保存到项目)。
  • skills/chart/scripts/build_chart.py:项目创建、HTML 构建、数据/脚本保存、截图。
  • skills/chart/scripts/chart_server.py:静态服务器 + /save-chart API。
  • skills/chart/templates/*.html:可复用图表模板。
  • output/chart-html/<project>/*:所有生成的图表产物。

注意事项:将数据直接嵌入 HTML(const DATA = ...)以避免 iframe 的 CORS 问题;多图表页面请将所有图表实例注册到 window.CHART_INSTANCES;使用有意义的项目名(主题-范围-日期)以便查找。

适用场景

任何用户需要可视化图表的场景:价格图表、数据对比、仪表盘、商业分析,以及分析与 BI 数据可视化(例如绘制 BTC 与黄金的对比等)。

限制

资料中未提供收费、价格、平台限制等说明。图表类型与模板以资料列出的为准,未列出的能力暂未提供。