返回 Skill 列表
extension
分类: 数据与分析无需 API Key

阿拉丁·Excel 图表生成器

Excel 数据可视化图表生成器 - 把 Excel/表格数据一键转为柱状图、折线图、饼图、雷达图、堆叠柱状图、散点图、面积图、环形图、气泡图、极坐标图、水平柱状图、柱+线组合双轴图。支持数据透视后绘图(--pivot),输出交互式 HTML(可悬停查看数值、一键下载 PNG)与静态 PNG(可嵌入文档/PPT)。提供两套配色方案: cn-stock(涨红跌绿, 金融财报默认) 与 vibrant(明亮风格, 适合演示报告)。当用户提到数据可视化、画图、图表、走势图、占比图、趋势图、对比图、透视表、Excel 图表、xlsx 可视化等需求时使用此技能。

person作者: user_d18c97eahubcommunity

Excel Chart Builder

概述

将 Excel 表格数据一键转化为可视化图表。核心脚本 scripts/build_chart.py 读取 Excel 文件,根据图表类型与输出格式生成图表: HTML 使用 Chart.js(交互式, 支持悬停查看数值、一键下载 PNG、切换图例), PNG 使用 matplotlib(静态, 可嵌入文档/PPT)。支持 12 种图表类型、数据透视、两套配色方案。

你能得到什么(交付物)

使用本技能,你将一次性拿到可直接放进工作成果里的图表资产:

  • 交互式 HTML 图表:浏览器打开即可悬停看精确数值、一键下载 PNG、切换图例,适合网页版周报/看板/分享。
  • 静态 PNG 图片:高清导出,直接拖进 Word / PPT / 邮件,作为结论的视觉佐证。
  • 透视后的聚合数据--pivot 一步把明细记录汇总成可绘图的结构,省去手动整理。
  • 可复用的命令模板:参数固化后,同类数据下次一行命令直接出图,无需重新决策。

5 分钟快速开始

  1. 确认 Python 环境已安装依赖: pandas openpyxl matplotlib
  2. 调用核心脚本生成图表:
python scripts/build_chart.py -i <Excel文件路径> -t <图表类型> -o <输出路径> -f <html|png>
  1. 图表类型(-t):
    • 基础: bar(柱状) line(折线) area(面积) pie(饼图) doughnut(环形) scatter(散点)
    • 扩展: hbar(水平柱状) stacked_bar(堆叠柱状) radar(雷达) polarArea(极坐标) bubble(气泡) combo(柱+线双轴)
  2. 输出格式(-f): html(交互式, 默认) 或 png(静态图片)
  3. 数据透视(--pivot): 先透视再绘图
  4. 配色方案(--palette): cn-stock(涨红跌绿, 默认) 或 vibrant(明亮风格)

一行即可出图的最小示例(把 data.xlsx 第一列作 X、其余数值列作 Y,画柱状图):

python scripts/build_chart.py -i data.xlsx -t bar -o chart.html -f html --title "我的第一张图"

何时触发

  • "帮我画个图" / "把这个 Excel 做成图表" / "数据可视化一下"
  • "画个趋势图 / 走势图 / 折线图" / "做个占比图 / 饼图" / "来个对比图 / 柱状图"
  • "做个透视表再画图" / "按部门汇总后出图" / "交叉分析各月营收"
  • "把报表里的数据变成图" / "生成可放 PPT 的图" / "导出图表 PNG"
  • 用户提到 "Excel 图表" / "xlsx 可视化" / "data visualization" / "chart from spreadsheet"
  • 用户有一张表格、想用图形而非数字呈现结论时

何时不触发

  • 用户只是想读/汇总 Excel 数据而不出图——直接帮做数据整理即可。
  • 用户要修改单元格、写公式、做数据清洗——那是表格编辑范畴,不在本技能。
  • 用户要画流程图 / 架构图 / 思维导图等非数据图表——用对应的绘图工具。
  • 用户要地图可视化 / GIS 热力图——超出本技能的数据类型。
  • 用户要实时大屏 / 后端接口图表——本技能产出静态文件,不做服务端渲染。
  • 用户提供的是图片里的表格截图而非真实 Excel——需先转成结构化数据。

能力边界

能做:

  1. .xlsx / .xls 表格数据转为 12 种常见统计图表。
  2. 数据透视后绘图(分组、交叉、多列聚合)。
  3. 输出交互式 HTML 与静态 PNG 两种格式。
  4. 提供中式 cn-stock(涨红跌绿) 与 vibrant(明亮) 两套配色。
  5. 多工作表、多系列、双轴组合图等常见变体。

不能做:

  1. 不读取图片/PDF 里的表格截图,需用户提供真实 Excel。
  2. 不修改源数据文件,只读取并生成新图表文件。
  3. 不生成流程图、架构图、思维导图等非数值图表。
  4. 不连接数据库或实时接口取数,仅消费本地文件。
  5. 不做服务端/大屏实时渲染,产出为离线文件。

输入输出规范

输入:

  • Excel 文件 .xlsx / .xls(必需,首行须为表头)
  • 图表类型 -t、输出格式 -f、输出路径 -o(必需)
  • 可选:指定列 -x/-y、工作表 -s、透视 --pivot、配色 --palette、标题与轴标题

输出:

  • 交互式 HTML(默认,含悬停、下载 PNG、切换图例)
  • 静态 PNG(指定 -f png 时)

输出位置:

  • -o 指定路径,默认落在当前工作目录
  • 生成后通过 present_files 展示,或直接告知用户文件路径

重要约束(TRACE)

  • 数据只读不写(→ Trust):绝不改动源 Excel,只产出新的图表文件,源数据可放心交给我们处理。
  • 表头约定(→ Reliability):首行必须是列名;X 默认取第一列,Y 取其余数值列,可用 --x/--y 显式覆盖。
  • 中式配色默认(→ Adaptability):金融/财报场景默认 cn-stock 涨红跌绿,符合中文读者直觉,避免红绿颠倒引起误读。
  • 格式按需选择(→ Convention):要嵌入文档/PPT 用 PNG,要网页查看/分享用 HTML,遵循约定减少返工。
  • 闭环交付(→ Effectiveness):出图后提示用户嵌入汇报并沉淀命令模板,让图表真正进入工作流而非一次性产物。

图表类型选择

选择图表前参考 references/chart_guide.md 中的决策树。简要原则:

| 需求 | 图表类型 | |---|---| | 分类数值对比 | bar / hbar(类别名长时) | | 时间序列趋势 | line / area | | 构成+总量 | stacked_bar | | 占比构成 | pie / doughnut / polarArea | | 变量相关性 | scatter / bubble(三维度) | | 多维能力对比 | radar | | 量级+比率双视角 | combo(柱+线双轴) |

使用流程

步骤 1: 读取 Excel 并了解数据结构

读取用户提供的 Excel 文件, 确认列名与数据类型。默认 X 轴取第一列(类别/时间), Y 轴取其余数值列。

步骤 2: 确定图表类型与输出格式

根据用户意图选择:

  • "对比/排名" → bar (类别名长用 hbar)
  • "趋势/走势/变化" → line
  • "累积/总量构成" → stacked_bararea
  • "占比/比例/构成" → pie / doughnut / polarArea
  • "关系/相关" → scatter (三维度用 bubble)
  • "能力/多维评估" → radar
  • "既要看量级又要看比率" → combo
  • 要插入文档/PPT → png; 要在浏览器查看/分享 → html

步骤 3: 选择配色方案

| 方案 | 参数 | 适用场景 | 色彩特征 | |---|---|---|---| | 涨红跌绿 | --palette cn-stock(默认) | 金融、财报、股市数据 | 红=正向/涨, 绿=负向/跌 | | 明亮风格 | --palette vibrant | 演示、报告、PPT、数据看板 | 高饱和度, 视觉冲击力强 |

步骤 4: 是否需要数据透视

如果用户想"按某列分组汇总""交叉分析""各部门各月份"等, 用 --pivot 先透视再绘图:

# 二维透视: 行=部门, 列=月份, 值=营收求和
python scripts/build_chart.py -i data.xlsx \
    --pivot "rows=部门,cols=月份,values=营收,agg=sum" \
    -t bar -o pivot.html -f html --title "各部门各月营收"

# 一维聚合: 行=部门, 值=营收求和
python scripts/build_chart.py -i data.xlsx \
    --pivot "rows=部门,values=营收,agg=sum" \
    -t bar -o sum.html -f html --title "各部门营收汇总"

agg 可选: sum(默认) / mean / count / min / max

步骤 5: 执行脚本生成图表

# 堆叠柱状图 (看构成+总量) - 明亮风格
python scripts/build_chart.py -i data.xlsx -t stacked_bar -o stacked.html -f html \
    --palette vibrant --title "各季度成本构成"

# 雷达图 (多维能力对比)
python scripts/build_chart.py -i scores.xlsx -t radar -o radar.html -f html \
    --title "员工能力评估"

# 柱+线组合双轴 (量级+比率)
python scripts/build_chart.py -i data.xlsx -t combo -o combo.html -f html \
    --y "营收,利润率" --palette vibrant --title "营收与利润率"

步骤 6: 交付结果

  • HTML 输出: 用浏览器打开预览, 或用 present_files 展示给用户。页面内置「下载 PNG」和「切换图例」按钮
  • PNG 输出: 告知用户文件路径, 可嵌入文档/PPT

步骤 7: 复盘与复用(闭环)

出图不是终点。把图表真正用进工作流,才能让它反复产生价值,从而形成「数据 → 选图 → 出图 → 嵌入汇报 → 复盘复用」的完整闭环:

  1. 嵌入汇报:HTML 直接放进周报/月报的网页版,PNG 拖进 Word/PPT/邮件,作为结论的视觉佐证,比纯数字更有说服力。
  2. 沉淀模板:把这次的 --pivot 参数、配色、标题风格记下来,下次同类数据直接复用,无需重新决策图表类型与参数。
  3. 反哺选题:哪种图被老板/客户反复采用,就说明它对应的指标最受关注——后续优先产出这类图,让数据汇报更有的放矢。

这样本技能就从「一次性出图」升级为「持续服务汇报节奏」的资产。

参数说明

| 参数 | 说明 | 默认值 | |---|---|---| | -i/--input | Excel 文件路径(必填) | - | | -t/--type | 图表类型 | bar | | -f/--format | 输出格式 html/png | html | | -o/--output | 输出文件路径(必填) | - | | -s/--sheet | 工作表名 | 第一个工作表 | | --palette | 配色方案 cn-stock/vibrant | cn-stock | | -x | X 轴列名 | 第一列 | | -y | Y 轴列名, 多列逗号分隔 | 其余数值列 | | --pivot | 数据透视 rows=X,cols=Y,values=Z,agg=sum | 无 | | --title | 图表标题 | 无 | | --x-title | X 轴标题 | 无 | | --y-title | Y 轴标题 | 无 |

combo 类型提示: 用 --y "A,B" 指定两列, 第一列画柱(左轴), 第二列画线(右轴), 适合"量级+比率"双视角。

配色方案

cn-stock (默认 - 涨红跌绿)

遵循中国股市与金融数据惯例, 适合财报、股市、金融数据:

  • 涨/正向/增长: 红色 #E53935
  • 跌/负向/下降: 绿色 #43A047
  • 中性/基准: 蓝色 #1E88E5
  • 多系列: 蓝/红/绿/橙/紫/青/棕/深紫循环

vibrant (明亮风格)

高饱和度配色, 视觉冲击力强, 适合演示报告、PPT、数据看板:

  • 亮橙 #FF6B35 / 青绿 #00C9A7 / 品紫 #C03BD1 / 金黄 #FFD23F
  • 紫罗兰 #845EC2 / 天蓝 #00B8EE / 珊瑚红 #FF5E78 / 柠檬绿 #9BE564

详细色板与选择建议见 references/chart_guide.md

HTML 交互功能

生成的 HTML 图表内置以下交互(无需额外配置):

  • 悬停查看数值: 鼠标移到数据点显示精确数值
  • 下载 PNG: 点击右上角「下载 PNG」按钮, 一键导出当前图表为 PNG 图片
  • 切换图例: 点击「切换图例」按钮, 显示/隐藏图例区域
  • 响应式: 自适应窗口大小, 移动端友好

Resources

scripts/

  • build_chart.py — 核心脚本, 读取 Excel 并生成 HTML 或 PNG 图表。支持 12 种图表类型、数据透视、两套配色方案, 可直接执行, 参数见上表。

references/

  • chart_guide.md — 图表类型选择决策树、配色方案对比、数据格式要求、数据透视用法与示例。在需要判断用哪种图表或确认配色时加载。
  • usage-examples.md — 标准 / 进阶 / 降级三类真实用法示例、最佳实践与常见问题,上手最快。

assets/

  • chart_template.html — Chart.js 的 HTML 骨架模板, 含响应式布局、悬停提示、下载 PNG 与切换图例按钮。生成 HTML 时由脚本读取并注入数据, 无需手动编辑。

依赖

执行脚本前确保 Python 环境已安装:

pandas  openpyxl  matplotlib

安装命令:

pip install pandas openpyxl matplotlib

常见问题 FAQ

Q: 提示缺少依赖 / ModuleNotFoundError? A: 先执行 pip install pandas openpyxl matplotlib 安装三项依赖,建议使用隔离的 Python 环境避免污染系统包。

Q: 中文标题/标签出现乱码? A: 多为系统缺少中文字体导致(matplotlib 静态图)。安装中文字体并在脚本中指定 font.sans-serif 即可;HTML 图表走浏览器渲染,不受此影响。

Q: 饼图扇区太多看不清? A: 饼图适合 ≤6 类占比;类别多时改用 bar / hbar 对比,或用 doughnut / polarArea 让占比更直观。

Q: 想同时看“总量”和“构成”怎么办? A: 用 stacked_bar(堆叠柱状),既能看每段构成,也能看整体总量。

Q: 类别名称很长被挤掉? A: 改用 hbar(水平柱状图),长名称在 Y 轴横向排布,不会被截断。