Data Chart
Overview
将表格数据转换为交互式 ECharts HTML 图表。支持 Excel / CSV 文件和对话中粘贴的表格文本,自动完成数据结构分析 → 图表选型 → 生成 HTML → 预览交付的全流程。
工作流程
第 1 步:数据探查(必做,不要跳过)
用脚本生成数据画像,避免把整个数据集读入上下文。脚本路径以本技能目录为基准(即包含本 SKILL.md 的目录),用当前环境可用的 python3(或 python)运行:
# Excel / CSV 文件
python3 <SKILL_DIR>/scripts/profile_data.py /path/to/data.xlsx
# Excel 多 sheet 时先看 profile 里的 excel_sheets,再用 --sheet 指定
python3 <SKILL_DIR>/scripts/profile_data.py data.xlsx --sheet 1
# 粘贴的表格文本:先写入临时文件,再走 stdin
python3 <SKILL_DIR>/scripts/profile_data.py - < /tmp/pasted_table.txt
其中 <SKILL_DIR> 是本技能的实际安装目录(不同 AI 终端/工具的安装位置不同,按当前会话中加载本技能时提供的路径替换,不要假设任何固定目录)。
若缺依赖(pandas / openpyxl),装到当前 Python 环境即可,不要写死某个解释器:
python3 -m pip install --user pandas openpyxl
如果当前环境装不了(如无网络、权限受限),退而用 CSV 方式:让用户把 Excel 另存为 CSV,或直接用脚本处理 CSV/粘贴文本(CSV 解析只需要 pandas)。
脚本输出 JSON:行列数、每列类型(numeric/date/category/text)、统计值、Top 类别、样例行、图表建议。基于该输出判断列的语义(哪个是维度、哪个是指标、单位是什么)。
第 2 步:图表选型
- 用户指定了图表类型 → 直接用,仅在明显不合理时(如负值占比用饼图)提醒并给替代方案。
- 用户未指定 → 读
references/chart-selection.md,按决策树和数据画像推荐。拿不准时在同一次回复中给 2-3 个候选方案让用户挑,或直接输出多图表面板。
第 3 步:数据处理
用 Python(python3 + pandas,即当前可用的任意 Python 环境)完成聚合/透视/分箱/五值计算,产出适合直接注入 ECharts 的数组:
- 类别过多(饼图 >8、柱状 >20)→ Top N + "其他"
- 时间序列过密 → 按需重采样(resample)或加 dataZoom
- 箱线图五值、直方图分箱、相关性矩阵 → 全部在 Python 侧算好,参考
references/echarts-templates.md中的代码片段
绝不要把数千行以上的原始数据直接塞进 HTML,先聚合。
第 4 步:生成 HTML
参照 references/echarts-templates.md 的骨架和配置片段生成单个自包含 HTML 文件(ECharts 走 jsdelivr CDN)。必须遵守:
- 标题 + 数据口径说明;轴带单位;tooltip 数值格式化
- 含 toolbox(saveAsImage 让用户可导出 PNG)和 resize 监听
- 涨跌类数据红涨绿跌(中国股市惯例);金额默认 ¥、千分位
- 多图表时放在一个 HTML 中,上下排列或用 tab 切换
- 保存到当前工作目录,文件名有意义(如
sales_trend_2026.html)
第 5 步:交付
用当前 AI 终端自带的文件预览/呈现能力打开 HTML 预览(如 present_files、内置浏览器预览等,按当前环境实际可用的工具选择;都没有就直接给出文件的绝对路径,提示用户用浏览器打开)。同时用一两句话说明图表结论(从数据里读出的关键发现,而不只是"图已生成")。
Resources
scripts/profile_data.py— 数据画像脚本:类型推断、统计、图表建议。支持 xlsx/xls/csv/tsv/txt 和 stdin 粘贴文本;能识别 ¥/%/万/亿 数字、"2026年1月"式中文日期。references/chart-selection.md— 图表选型决策树、按分析目的的选型表、常见坑。references/echarts-templates.md— 自包含 HTML 骨架、10+ 种图表的 ECharts 配置片段、数据注入与质检清单。
Scan to join WeChat group