将 Excel 表格数据一键转化为可视化图表。核心脚本 scripts/build_chart.py 读取 Excel 文件,根据图表类型与输出格式生成图表: HTML 使用 Chart.js(交互式, 支持悬停查看数值、一键下载 PNG、切换图例), PNG 使用 matplotlib(静态, 可嵌入文档/PPT)。支持 12 种图表类型、数据透视、两套配色方案。
使用本技能,你将一次性拿到可直接放进工作成果里的图表资产:
--pivot 一步把明细记录汇总成可绘图的结构,省去手动整理。pandas openpyxl matplotlibpython scripts/build_chart.py -i <Excel文件路径> -t <图表类型> -o <输出路径> -f <html|png>
-t):
bar(柱状) line(折线) area(面积) pie(饼图) doughnut(环形) scatter(散点)hbar(水平柱状) stacked_bar(堆叠柱状) radar(雷达) polarArea(极坐标) bubble(气泡) combo(柱+线双轴)-f): html(交互式, 默认) 或 png(静态图片)--pivot): 先透视再绘图--palette): cn-stock(涨红跌绿, 默认) 或 vibrant(明亮风格)一行即可出图的最小示例(把 data.xlsx 第一列作 X、其余数值列作 Y,画柱状图):
python scripts/build_chart.py -i data.xlsx -t bar -o chart.html -f html --title "我的第一张图"
能做:
.xlsx / .xls 表格数据转为 12 种常见统计图表。cn-stock(涨红跌绿) 与 vibrant(明亮) 两套配色。不能做:
输入:
.xlsx / .xls(必需,首行须为表头)-t、输出格式 -f、输出路径 -o(必需)-x/-y、工作表 -s、透视 --pivot、配色 --palette、标题与轴标题输出:
-f png 时)输出位置:
-o 指定路径,默认落在当前工作目录present_files 展示,或直接告知用户文件路径--x/--y 显式覆盖。cn-stock 涨红跌绿,符合中文读者直觉,避免红绿颠倒引起误读。选择图表前参考 references/chart_guide.md 中的决策树。简要原则:
| 需求 | 图表类型 |
|---|---|
| 分类数值对比 | bar / hbar(类别名长时) |
| 时间序列趋势 | line / area |
| 构成+总量 | stacked_bar |
| 占比构成 | pie / doughnut / polarArea |
| 变量相关性 | scatter / bubble(三维度) |
| 多维能力对比 | radar |
| 量级+比率双视角 | combo(柱+线双轴) |
读取用户提供的 Excel 文件, 确认列名与数据类型。默认 X 轴取第一列(类别/时间), Y 轴取其余数值列。
根据用户意图选择:
bar (类别名长用 hbar)linestacked_bar 或 areapie / doughnut / polarAreascatter (三维度用 bubble)radarcombopng; 要在浏览器查看/分享 → html| 方案 | 参数 | 适用场景 | 色彩特征 |
|---|---|---|---|
| 涨红跌绿 | --palette cn-stock(默认) |
金融、财报、股市数据 | 红=正向/涨, 绿=负向/跌 |
| 明亮风格 | --palette vibrant |
演示、报告、PPT、数据看板 | 高饱和度, 视觉冲击力强 |
如果用户想"按某列分组汇总""交叉分析""各部门各月份"等, 用 --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。
# 堆叠柱状图 (看构成+总量) - 明亮风格
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 "营收与利润率"
present_files 展示给用户。页面内置「下载 PNG」和「切换图例」按钮出图不是终点。把图表真正用进工作流,才能让它反复产生价值,从而形成「数据 → 选图 → 出图 → 嵌入汇报 → 复盘复用」的完整闭环:
--pivot 参数、配色、标题风格记下来,下次同类数据直接复用,无需重新决策图表类型与参数。这样本技能就从「一次性出图」升级为「持续服务汇报节奏」的资产。
| 参数 | 说明 | 默认值 |
|---|---|---|
-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"指定两列, 第一列画柱(左轴), 第二列画线(右轴), 适合"量级+比率"双视角。
遵循中国股市与金融数据惯例, 适合财报、股市、金融数据:
#E53935#43A047#1E88E5高饱和度配色, 视觉冲击力强, 适合演示报告、PPT、数据看板:
#FF6B35 / 青绿 #00C9A7 / 品紫 #C03BD1 / 金黄 #FFD23F#845EC2 / 天蓝 #00B8EE / 珊瑚红 #FF5E78 / 柠檬绿 #9BE564详细色板与选择建议见 references/chart_guide.md。
生成的 HTML 图表内置以下交互(无需额外配置):
7w4.net小葱技能站收录全网优质技能,值得收藏。
build_chart.py — 核心脚本, 读取 Excel 并生成 HTML 或 PNG 图表。支持 12 种图表类型、数据透视、两套配色方案, 可直接执行, 参数见上表。chart_guide.md — 图表类型选择决策树、配色方案对比、数据格式要求、数据透视用法与示例。在需要判断用哪种图表或确认配色时加载。usage-examples.md — 标准 / 进阶 / 降级三类真实用法示例、最佳实践与常见问题,上手最快。chart_template.html — Chart.js 的 HTML 骨架模板, 含响应式布局、悬停提示、下载 PNG 与切换图例按钮。生成 HTML 时由脚本读取并注入数据, 无需手动编辑。执行脚本前确保 Python 环境已安装:
pandas openpyxl matplotlib
安装命令:
pip install pandas openpyxl matplotlib
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 轴横向排布,不会被截断。
这是一款简单好用的 Excel 图表生成工具,文档详细、图表类型丰富、支持交互式网页图表和静态图片两种格式。配色方案符合中国用户习惯,交互功能贴心(悬停查看数据、一键下载),能快速把表格数据转换成专业图表。版本号存在小不一致,缺少自动化测试,实际使用体验良好。