用AI编程5分钟搞定数据可视化:从饼图到桑基图

用AI编程5分钟搞定数据可视化:从饼图到桑基图

领导发来一个 Excel 和一张参考图:"根据数据画一个类似这样的图。"你一看就懵了------这什么工具画的?怎么从零开始?以后数据变了怎么办?

如果你也有过这种经历,这篇文章教你用 AI 编程,5 分钟生成任何你想要的图表,而且做出来的是一个活的网页工具,数据随时改、随时更新。

前言

先讲一个真实的故事。

小天是一个工程师,领导发给他一个 Excel 和一张参考图,要求根据数据画一个类似的图表。这张图不是普通的饼图------结构复杂、颜色分明、每个扇形长短不一。

他脑子里闪过三个问题:

  1. 这到底用什么软件画的?
  2. 我该怎么从头开始做?
  3. 万一以后数据又变了,难道每次都这么麻烦?

常规思路是打开 Excel 勉强模仿,或者花几天学习专业图表工具。但小天选择了一条更高效的路:用 AI 现场创造一个专属的图表生成器。

结果呢?10 分钟搞定。而且做出来的是一个网页工具,以后数据怎么变,只需要在页面上改改数字就行了。

这篇文章会把这套方法论拆解给你看,覆盖三种最常用的数据可视化场景:饼图、热力图、桑基图。

场景一:交互式饼状图生成器

需求描述

这是最经典的场景------用数据做一张饼图。但我们要的不只是一张静态图,而是一个可以反复修改数据的生成器

直接把以下需求发给 AI:

markdown 复制代码
请用 ECharts 创建一个饼状图(南丁格尔玫瑰图):
1. 颜色代表五大分类:黄色-安全韧性、红色-减污降碳、蓝色-健康河湖、绿色-人文宜居、紫色-科学管控
2. 每个分类下有多个子项目(名称和分数),最终图表显示每个子项目的分数占比
3. 关键要求:分数越低,对应的扇形半径要越短
4. 采用 ECharts 图表库实现
5. 最终,我要一个网页,能让我自由修改项目名称和分数
6. 单个HTML文件

AI 生成的核心代码

你不需要看懂全部代码,但理解这几个关键配置会帮你更好地和 AI 沟通:

javascript 复制代码
option = {
    // 南丁格尔玫瑰图的关键配置
    series: [{
        type: 'pie',
        roseType: 'area',   // 'area'让扇形半径和数值成正比
        radius: ['15%', '70%'],
        data: [
            { value: 40, name: '项目A' },
            { value: 38, name: '项目B' },
            { value: 32, name: '项目C' },
            // ...
        ],
        label: {
            formatter: '{b}: {c}分 ({d}%)'  // 显示名称、分数、百分比
        }
    }]
};

关键点

  • roseType: 'area' --- 这是南丁格尔玫瑰图的核心,扇形半径和数值成正比
  • 数据直接修改 data 数组就行,刷新页面图表自动更新

效果

场景二:用户活跃度热力图

为什么需要热力图?

运营小李想知道:一周 7 天,每天 24 小时,用户什么时候最活跃?有了这个数据,他就能选择最佳时间发布内容和活动。

168 个数据点(7x24)用表格看根本看不过来。用热力图,颜色越深表示越活跃,一眼就能找到高峰时段。

需求描述

diff 复制代码
请用 ECharts 创建一个用户活跃度热力图,要求:

标题:"一周用户活跃度热力图"

X轴:0时-23时(24小时)
Y轴:周一到周日

数据格式:[小时, 星期几, 活跃用户数]

请生成168个数据点(7天x24小时),模拟以下规律:
- 工作日(周一到周五):12-13点午休高峰,20-22点晚间高峰
- 周末(周六周日):10-12点上午活跃,14-16点下午活跃,20-22点晚间高峰
- 凌晨2-6点活跃度最低

颜色映射:
- 低活跃:浅蓝/白色
- 中活跃:黄色/橙色
- 高活跃:红色/深红

悬浮显示:X月X日 X时,活跃用户XXX人
添加"下载图片"按钮,单个HTML文件。

AI 生成的核心代码

javascript 复制代码
option = {
    xAxis: {
        type: 'category',
        data: ['0时', '1时', ..., '23时'],  // 24小时
        splitArea: { show: true }
    },
    yAxis: {
        type: 'category',
        data: ['周一', '周二', ..., '周日'],  // 7天
        splitArea: { show: true }
    },
    visualMap: {
        min: 0,
        max: 1000,
        calculable: true,
        orient: 'horizontal',
        left: 'center',
        bottom: '5%',
        inRange: {
            color: ['#EBF5FB', '#85C1E9', '#F39C12', '#E74C3C', '#922B21']
            // 从浅蓝到深红的颜色梯度
        }
    },
    series: [{
        type: 'heatmap',     // 热力图类型
        data: [
            [0, 0, 120],     // [小时, 星期, 活跃用户数]
            [1, 0, 80],
            // ... 168个数据点
        ],
        label: { show: false }
    }]
};

关键点

  • type: 'heatmap' --- ECharts 的热力图类型
  • visualMap --- 控制颜色映射范围和梯度,从浅蓝(低)到深红(高)
  • 数据格式是 [x, y, value] 三元组

效果

一张 7x24 的热力图,颜色越深代表越活跃。一眼就能看出:

  • 工作日晚间 20-22 点是活跃高峰
  • 凌晨 2-6 点几乎没人
  • 周末上午 10-12 点有一个小高峰

这就是热力图的威力------168 个数据点,一张图就能讲清楚。

场景三:用户路径桑基图

为什么需要桑基图?

运营小李想分析用户在网站上的浏览路径:

首页 → 有的人去了搜索页 → 有的人去了推荐页 → 有的人直接离开了

他需要回答:用户从每个页面流向了哪里?哪条路径流量最大?哪个页面跳出率最高?

桑基图(Sankey Diagram) 就是展示"流向"的最佳图表------左边的条代表来源,右边的条代表去向,连线粗细代表流量大小。

需求描述

erlang 复制代码
请用 ECharts 创建一个用户路径桑基图,要求:

标题:"用户浏览路径分析"

数据(从左到右3层):

来源层 → 中间页 → 目标页:
- 首页(10000) → 搜索页(4000) → 商品详情(3200)
- 首页(10000) → 推荐页(3000) → 商品详情(2400)
- 首页(10000) → 活动页(1500) → 商品详情(800)
- 首页(10000) → 直接离开(1500)
- 搜索页(4000) → 加入购物车(2000)
- 推荐页(3000) → 加入购物车(1500)
- 活动页(1500) → 加入购物车(600)
- 商品详情(6400) → 加入购物车(3500)
- 商品详情(6400) → 离开(2900)
- 加入购物车(7600) → 完成支付(4500)
- 加入购物车(7600) → 放弃(3100)

要求:
1. 3层节点:来源、中间页、目标页
2. 连线粗细和流量成正比
3. 悬浮显示流量数值
4. 节点颜色区分层次
5. 单个HTML文件

AI 生成的核心代码

javascript 复制代码
option = {
    series: [{
        type: 'sankey',
        layout: 'none',
        emphasis: {
            focus: 'adjacency'  // 悬浮时高亮相邻节点和连线
        },
        nodeAlign: 'left',
        data: [
            { name: '首页' },
            { name: '搜索页' },
            { name: '推荐页' },
            { name: '活动页' },
            { name: '商品详情' },
            { name: '加入购物车' },
            { name: '完成支付' },
            { name: '直接离开' },
            { name: '离开' },
            { name: '放弃' }
        ],
        links: [
            { source: '首页', target: '搜索页', value: 4000 },
            { source: '首页', target: '推荐页', value: 3000 },
            { source: '首页', target: '活动页', value: 1500 },
            { source: '首页', target: '直接离开', value: 1500 },
            { source: '搜索页', target: '商品详情', value: 3200 },
            { source: '推荐页', target: '商品详情', value: 2400 },
            // ...更多links
        ]
    }]
};

关键点

  • type: 'sankey' --- 桑基图类型
  • emphasis: { focus: 'adjacency' } --- 悬浮时自动高亮关联路径,其他路径淡化
  • data 定义节点,links 定义连线,value 控制连线粗细

效果

通过桑基图可以清晰看到:

  • 首页 → 搜索页 → 商品详情 是流量最大的路径(4000 → 3200)
  • 首页直接离开 的用户有 1500 人,占 15%
  • 加入购物车 → 完成支付 转化率约 59%,放弃率 41%
  • 商品详情 → 离开 是最大的流失节点(2900 人)

这就是桑基图的威力------流量流向一目了然,流失节点无处遁形

配色与导出:让图表更专业

统一配色方案

图表做好了,但如果每张图颜色都不一样,放到 PPT 里看起来像拼凑的。统一配色很简单:

javascript 复制代码
// ECharts 全局配色
option = {
    color: ['#4A90D9', '#27AE60', '#F39C12', '#E74C3C', '#9B59B6'],
    // ...其他配置
};

推荐几套经过验证的配色方案:

方案 适用场景 主色
商务蓝 通用/正式 #4A90D9
活力橙 运营/营销 #FF6B35
科技紫 技术/产品 #6C5CE7

导出高清图片

javascript 复制代码
// 导出为高清PNG
var imgData = chart.getDataURL({
    type: 'png',
    pixelRatio: 2,           // 2倍像素密度
    backgroundColor: '#fff'
});

var link = document.createElement('a');
link.href = imgData;
link.download = '图表名称.png';
link.click();

pixelRatio: 2 是关键------2 倍像素密度,导出的图片在 Retina 屏幕上也清晰锐利。

技术栈总结

图表类型 ECharts 类型 适用场景
玫瑰饼图 pie + roseType: 'area' 分类占比、数据构成
热力图 heatmap 时间分布、密度分析
桑基图 sankey 用户路径、流量流向

共同特点

  • 单个 HTML 文件,无需任何构建工具
  • 数据存储在 JavaScript 数组中,修改即更新
  • 支持交互(悬浮、点击、缩放)
  • 一键导出高清图片

AI 编程做可视化的方法论

通过以上三个场景,我们可以提炼出一套通用方法论:

1. 需求描述 = 80% 的工作

复制代码
想清楚 → 写清楚 → 说清楚

不需要你懂代码,但需要你能用自然语言清晰描述你想要什么。具体到:图表类型、数据格式、布局方式、交互逻辑、视觉要求。

2. 先方案后代码

arduino 复制代码
"你先看看我的需求,给我一个实现方案,先等我确认方案后再实现"

确认 AI 理解了你的需求,再让它写代码。避免方向错误导致的反复修改。

3. 先完成再完美

第一版不可能完美,但只要核心功能到位,后续通过对话微调细节就行:

  • "颜色换成蓝色系"
  • "标题字体大一点"
  • "加一个下载按钮"

写在最后

这篇文章展示了三种最常用的数据可视化场景,但 AI 编程能做到的远不止于此:

  • 转化漏斗分析 --- 用户从浏览到付款,每一步流失了多少?
  • 动态排序柱状图 --- Top10 自动排序的动态排名
  • 用户路径桑基图 --- 发现流量流失节点
  • 多图表联动 --- 点品类,数据跟着变
  • 响应式数据看板 --- 手机上也能看

核心就一句话:编程的门槛正在消失,创造力的时代正在到来。 技术不再是实现想法的壁垒,真正的门槛是你能否把一个模糊的念头清晰地说出来。

更多 AI 编程实战案例(100+ 期完整代码与提示词),欢迎关注我的小报童专栏。从零开始,用 AI 把你的每一个想法变成现实。


如果这篇文章对你有帮助,欢迎点赞收藏。有问题欢迎评论区交流。

相关推荐
盼君1 小时前
用AI编程画架构图:从系统全景到C4模型
ai编程
鱼锦0.01 小时前
为什么DeepSeek-R1模型不支持FunctionCalling
ai编程
ZFSS2 小时前
PixVerse 视频生成 API 实战教程
人工智能·ai·ai作画·音视频·ai编程
子昕2 小时前
API Key 登录 Codex 也能用插件了,还支持会话删除和导出
ai编程
野犬寒鸦2 小时前
Claude Code:终端AI编程助手全指南(附带指令全讲解)
开发语言·后端·面试·ai编程
無名路人2 小时前
小程序点餐页吸顶滚动
前端·微信小程序·ai编程
DogDaoDao2 小时前
【GitHub】Ruflo:面向 Claude Code 的企业级多智能体编排平台深度解析
人工智能·深度学习·大模型·github·ai编程·claude·ruflo
盼君3 小时前
用AI编程从零搭建一个响应式数据看板
ai编程·数据可视化
紫小米4 小时前
Agent的范式
prompt·embedding·ai编程