ECharts 图表教程
从零学会制造业大屏最常用的图表库 — 给中际旭创数据可视化工程师的实战手册
01 · ECharts 简介
假设你管理一个工厂,有 5 条产线。你想看各条产线的日产量、高峰时段、良品率趋势……
- Excel = 白板 + 马克笔:能画图,但每次更新数据你得自己擦了重画
- ECharts = 自动化数字大屏:数据一变,图表秒级刷新,还能做动画、联动、实时监控
在制造业里,ECharts 就是车间大屏的"画笔"——MES 系统、SCADA 看板、日报大屏,几乎全是它画的。
什么是 ECharts?
ECharts 是百度开源的 JavaScript 可视化库,是中国使用率最高的图表库。它的特点是:
- 开箱即用:引入一个 JS 文件就能画图,不需要装 Node.js、不需要打包工具
- 图表种类丰富:柱状图、折线图、饼图、地图、仪表盘、3D、动态排序……30+ 种图表
- 动画流畅:数据变化时有平滑的过渡动画,非常适合大屏展示
- 中文文档完善:官方文档就是中文的,例子直接复制就能跑
- 免费开源:Apache 基金会孵化项目,商用无限制
5 行代码画一个图表
<!-- 第1步:引入 ECharts -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<!-- 第2步:准备一个有宽高的容器 -->
<div id="chart" style="width:600px;height:400px"></div>
<!-- 第3步:写 JS 初始化图表 -->
<script>
var chart = echarts.init(document.getElementById('chart'));
chart.setOption({
title: { text: '我的第一个图表' },
xAxis: { data: ['A','B','C'] },
yAxis: {},
series: [{ type: 'bar', data: [120, 200, 150] }]
});
</script>
| Excel 图表 | ECharts | |
|---|---|---|
| 交互 | 静态图片,不能缩放/联动 | 鼠标悬浮提示、缩放、联动 |
| 实时 | 手动刷新 | 自动刷新,秒级更新 |
| 部署 | 发文件给领导 | 发个链接,手机也能看 |
| 动画 | 无 | 入场动画、数据过渡动画 |
| 大屏 | 不适用 | 专为数据大屏设计 |
| 学习成本 | 会 Excel 就行 | 需要会 HTML + JS 基础 |
ECharts 的核心概念只有 3 个,记住这 3 个就能画所有图表:
type— 图表类型(bar 柱状、line 折线、pie 饼图、gauge 仪表盘……)data— 数据(就是 Excel 里你选中的那列数字)setOption({...})— 所有配置都塞进这个大括号里
02 · 柱状图 (Bar)
你想比较 5 家分店今天的销量——哪家卖得多、哪家卖得少。把每家的销量画成一根柱子,柱子越高 = 销量越多,一眼就能看出谁是销冠。
在制造业里就是:各产线今天谁的 OEE 最高?
什么时候用柱状图?
- 比较不同类别的数值大小(各产线、各车间、各班次)
- 例:各产线 OEE 对比、各班次产量对比、各机台停机时长排名
完整代码 — 各产线 OEE 对比
<div id="bar-chart" style="width:700px;height:400px"></div>
<script>
var barChart = echarts.init(document.getElementById('bar-chart'));
barChart.setOption({
title: { text: '各产线 OEE 对比 (%)' },
tooltip: {},
xAxis: {
type: 'category',
data: ['Line-1', 'Line-2', 'Line-3', 'Line-4', 'Line-5']
},
yAxis: {
type: 'value',
max: 100,
axisLabel: { formatter: '{value}%' }
},
series: [{
type: 'bar',
data: [85.2, 78.6, 91.3, 72.8, 88.1],
itemStyle: {
color: function(params) {
// OEE < 80% 标红,>= 80% 标蓝
return params.data < 80 ? '#ee6666' : '#5470c6';
}
},
label: { show: true, position: 'top', formatter: '{c}%' }
}]
});
</script>
5 根柱子并排显示。X 轴是 Line-1 到 Line-5,Y 轴是 0~100%。其中 Line-2 (78.6%) 和 Line-4 (72.8%) 的柱子是红色(低于 80% 警告),其余为蓝色。每根柱子顶部显示具体数值。
| Excel | ECharts | |
|---|---|---|
| 操作 | 选中数据 → 插入 → 柱状图 | 写 xAxis + series |
| 颜色 | 手动一个个改颜色 | 用函数自动判断颜色 |
| 数值标签 | 右键 → 添加数据标签 | label: { show: true } |
关键配置速记
| 配置 | 作用 | 示例值 |
|---|---|---|
type: 'bar' | 声明柱状图 | — |
xAxis.type: 'category' | X 轴是分类(文字) | Line-1, Line-2... |
label | 柱子上方显示数值 | label: { show: true, position: 'top' } |
itemStyle.color | 柱子颜色(可传函数) | 低于阈值标红 |
03 · 折线图 (Line)
你想看今天从开门到打烊,每个小时的销量变化。把每小时销量连成一条线,你能一眼看出:高峰在几点?低谷在几点?趋势是上升还是下降?
制造业版本:过去 24 小时产量趋势——哪班产量最高?有没有异常波动?
什么时候用折线图?
- 展示数据随时间变化的趋势
- 例:24h 产量趋势、月度 OEE 走势、温度监控曲线
完整代码 — 24 小时产量趋势
<div id="line-chart" style="width:700px;height:400px"></div>
<script>
var lineChart = echarts.init(document.getElementById('line-chart'));
var hours = [];
for (var i = 0; i < 24; i++) hours.push(i + ':00');
lineChart.setOption({
title: { text: '24 小时产量趋势(单位:件)' },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', data: hours },
yAxis: { type: 'value' },
series: [{
type: 'line',
data: [120,98,85,72,65,58,62,180,245,268,
290,310,305,298,285,275,280,265,248,230,
210,195,175,150],
smooth: true, // 平滑曲线(像 Excel 里的"平滑线")
areaStyle: { // 填充线下面的区域
color: new echarts.graphic.LinearGradient(0,0,0,1,[
{ offset: 0, color: 'rgba(84,112,198,0.4)' },
{ offset: 1, color: 'rgba(84,112,198,0.05)' }
])
},
markLine: { // 添加目标线(类似 Excel 的参考线)
data: [{ yAxis: 250, name: '目标产量' }]
}
}]
});
</script>
X 轴是 0:00 到 23:00。一条平滑的蓝色曲线从深夜低谷(58件)逐步上升到上午高峰(310件),之后缓慢回落。曲线下方有蓝色渐变填充。250 处有一条虚线标注"目标产量"。鼠标悬浮会显示具体数值。
| Excel | ECharts | |
|---|---|---|
| 平滑线 | 右键数据系列 → 勾选"平滑线" | smooth: true |
| 面积填充 | 改图表类型为"面积图" | areaStyle: { ... } |
| 参考线 | 手动画一条线 | markLine: { data: [{ yAxis: 250 }] } |
04 · 饼图 (Pie)
你统计了这周所有停机时间的原因占多少比例:设备故障 40%、换线调试 25%、缺料等待 20%、其他 15%。画成饼图,每块"饼"代表一种停机原因的占比。
制造业版本:停机原因分布——设备故障占 35%、换线占 25%、缺料占 20%……
什么时候用饼图?
- 展示各部分占总体的比例
- 例:停机原因分布、不良品类型分布、能耗分类占比
完整代码 — 停机原因分布(环形图)
<div id="pie-chart" style="width:700px;height:400px"></div>
<script>
var pieChart = echarts.init(document.getElementById('pie-chart'));
pieChart.setOption({
title: { text: '停机原因分布', left: 'center' },
tooltip: { trigger: 'item', formatter: '{b}: {c}分钟 ({d}%)' },
legend: { bottom: 10 },
series: [{
type: 'pie',
radius: ['40%', '70%'], // 内半径40%,外半径70% → 环形图(甜甜圈)
data: [
{ value: 180, name: '设备故障' },
{ value: 130, name: '换线调整' },
{ value: 95, name: '缺料等待' },
{ value: 60, name: '人员不足' },
{ value: 45, name: '计划停机' },
{ value: 30, name: '其他' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0,0,0,0.3)'
}
}
}]
});
</script>
中间镂空的环形图(像甜甜圈)。最大的一块是"设备故障"(180分钟,占 33%),其次是"换线调整"、"缺料等待"等。鼠标悬浮时对应扇区会凸出并显示阴影,底部有图例。
| Excel | ECharts | |
|---|---|---|
| 环形图 | 图表类型选"圆环图" | radius: ['40%', '70%'](设置内半径) |
| 百分比 | 右键添加数据标签 | tooltip 自动显示 ({d}%) |
| 悬浮效果 | 无 | emphasis 设置阴影、放大 |
饼图 vs 环形图
区别只有一个配置:radius
radius: '60%'→ 普通饼图(实心圆)radius: ['40%', '70%']→ 环形图(甜甜圈,中间可以放数字)
05 · 仪表盘 (Gauge) ⭐ 关键
想象你车上的时速表——指针从左到右,0 到 220 km/h。你一眼就能看出现在开多快,有没有超速。
制造业的 OEE 仪表盘完全一样:0~100%,指针指向当前 OEE。绿色区间 = 正常,黄色 = 需关注,红色 = 报警。
为什么仪表盘在制造业特别重要?
在车间大屏上,领导和工程师最关心的几个数字:OEE、直通率、设备利用率。这些用一个百分比就能表达,仪表盘是最直观的展示方式。
完整代码 — OEE 仪表盘
<div id="gauge-chart" style="width:600px;height:400px"></div>
<script>
var gaugeChart = echarts.init(document.getElementById('gauge-chart'));
gaugeChart.setOption({
series: [{
type: 'gauge',
center: ['50%', '60%'],
min: 0,
max: 100,
splitNumber: 10,
axisLine: {
lineStyle: {
width: 20,
color: [
[0.6, '#ee6666'], // 0~60% 红色(差)
[0.8, '#fac858'], // 60~80% 黄色(一般)
[1, '#91cc75'] // 80~100% 绿色(优秀)
]
}
},
pointer: { width: 5 },
axisTick: { length: 8 },
splitLine: { length: 15 },
detail: {
formatter: '{value}%',
fontSize: 28,
offsetCenter: [0, '70%'],
color: 'auto' // 数字颜色跟随区间颜色
},
title: {
offsetCenter: [0, '90%'],
fontSize: 16
},
data: [{ value: 78.5, name: 'OEE' }]
}]
});
</script>
一个半圆形仪表盘,像汽车时速表。外圈颜色分段:0~60 红色、60~80 黄色、80~100 绿色。指针指向 78.5,在黄色区间(需改善)。中间大字显示 "78.5%",下方文字 "OEE"。
| Excel | ECharts | |
|---|---|---|
| 仪表盘 | 不支持(需第三方插件) | type: 'gauge' 原生支持 |
| 颜色区间 | 条件格式(复杂) | axisLine.lineStyle.color 直接配 |
| 动态更新 | 手动改 | setOption + 定时器自动刷新 |
06 · 地图 (Map)
你开了 50 家分店,分布在全省各地。你在地图上把每家店标出来,颜色深浅表示销量高低,一眼就能看出哪个区域生意好。
制造业版本:各车间产量热力图——哪个车间产量最高用深色,最低用浅色。
什么时候用地图?
- 数据与地理位置相关
- 例:各车间/厂区分布、全国工厂产量热力图、供应链地图
完整代码 — 车间产量热力图(简化版)
注:中国地图需要额外加载地图 JSON 数据。这里用散点图在自定义坐标系上模拟车间布局。
<div id="map-chart" style="width:700px;height:400px"></div>
<script>
var mapChart = echarts.init(document.getElementById('map-chart'));
// 真实项目中,用 echarts.registerMap('china', chinaJson) 注册地图
// 这里用散点图模拟各车间的位置和产量
var workshops = [
{ name: 'A1车间', value: [50, 30, 5200] },
{ name: 'A2车间', value: [150, 50, 3800] },
{ name: 'B1车间', value: [250, 40, 6100] },
{ name: 'B2车间', value: [350, 60, 4500] },
{ name: 'C1仓库', value: [200, 120, 2000] }
];
mapChart.setOption({
title: { text: '各车间产量分布(气泡大小 = 产量)' },
tooltip: {
formatter: function(p) {
return p.name + '<br/>产量:' + p.value[2] + ' 件';
}
},
xAxis: { show: false, min: 0, max: 400 },
yAxis: { show: false, min: 0, max: 150 },
series: [{
type: 'scatter',
symbolSize: function(d) { return d[2] / 80; },
data: workshops,
label: { show: true, formatter: '{b}', position: 'bottom' },
itemStyle: {
color: function(p) {
var v = p.value[2];
return v >= 5000 ? '#5470c6' : v >= 3000 ? '#91cc75' : '#fac858';
}
}
}]
});
</script>
在空白区域上有 5 个大小不同的彩色气泡。B1 车间最大(6100件,蓝色),A2 车间中等(3800件,绿色),C1 仓库最小(2000件,黄色)。每个气泡下方有名称标签。悬浮显示详细产量。
使用真实中国地图的方法
// 第1步:引入 ECharts 后,再引入中国地图 JSON
<script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts@4/map/js/china.js"></script>
// 第2步:series 用 type: 'map', map: 'china'
series: [{
type: 'map',
map: 'china',
data: [
{ name: '山东', value: 57200 },
{ name: '江苏', value: 48900 }
]
}]
// 第3步:配合 visualMap 组件做颜色映射
visualMap: {
min: 0, max: 60000,
inRange: { color: ['#e0f3db', '#a8ddb5', '#43a2ca'] }
}
07 · 动态排序图 (Dynamic Bar Race) ⭐
你看过那种"全球 GDP 排名变化"的动画视频吗?柱子会根据数值大小自动重新排列,像赛跑一样。哪家店冲到了第一,哪家掉到了最后——一目了然。
制造业版本:各机台产量排名动态变化——看哪些机台是"黑马",哪些在下滑。
为什么岗位要求会提到这个?
动态排序图是近年来大屏展示的热门效果,特别适合做年度汇报、季度总结的动态数据展示。
完整代码 — 各机台产量动态排名
<div id="race-chart" style="width:700px;height:400px"></div>
<script>
var raceChart = echarts.init(document.getElementById('race-chart'));
var machines = ['CNC-01','CNC-02','CNC-03','CNC-04','CNC-05','CNC-06'];
var currentData = [320, 280, 350, 260, 310, 290];
var year = 2024;
function update() {
// 模拟数据变化(实际项目从 API 获取)
currentData = currentData.map(function(v) {
return Math.round(v + (Math.random() - 0.3) * 50);
});
year++;
// 按产量排序(从大到小)
var sorted = machines.map(function(m, i) {
return { name: m, value: currentData[i] };
}).sort(function(a, b) { return a.value - b.value; });
raceChart.setOption({
title: { text: '各机台产量动态排名 - ' + year + '年' },
xAxis: { max: 500 },
yAxis: {
type: 'category',
data: sorted.map(function(d) { return d.name; }),
inverse: true // 从上到下:最大在上
},
series: [{
type: 'bar',
data: sorted.map(function(d) { return d.value; }),
label: { show: true, position: 'right' },
itemStyle: { color: '#5470c6' }
}],
animationDuration: 1000, // 过渡动画 1 秒
animationEasing: 'cubicInOut'
});
}
update(); // 首次渲染
setInterval(update, 2000); // 每 2 秒更新一次
</script>
6 根横向柱子,按产量从大到小排列。每 2 秒柱子会重新排序并平滑移动,像赛跑一样。柱子右侧显示具体数值,标题显示当前年份。
08 · 组合图表 (Mixed) ⭐
你想在一张图里同时看每天的销量(柱子)和累计评分趋势(折线)。柱子表示绝对数量,折线表示百分比趋势,两者用不同的 Y 轴。
制造业最常见组合:产量(柱)+ 直通率(折线)——产量看数量,直通率看质量,两个指标必须一起看。
什么时候用组合图?
- 一个图表中同时展示不同量纲的数据(如数量 vs 百分比)
- 例:产量(件) + 直通率(%)、能耗(kWh) + 单位成本(元)、产量(件) + 不良率(%)
完整代码 — 产量 + 直通率组合图
<div id="mixed-chart" style="width:700px;height:400px"></div>
<script>
var mixedChart = echarts.init(document.getElementById('mixed-chart'));
var days = ['周一','周二','周三','周四','周五','周六','周日'];
mixedChart.setOption({
title: { text: '本周产量 & 直通率' },
tooltip: { trigger: 'axis' },
legend: {},
xAxis: { type: 'category', data: days },
yAxis: [
{
type: 'value',
name: '产量(件)',
position: 'left'
},
{
type: 'value',
name: '直通率(%)',
position: 'right',
min: 90,
max: 100,
axisLabel: { formatter: '{value}%' }
}
],
series: [
{
name: '产量',
type: 'bar',
data: [1250, 1380, 1420, 1350, 1500, 1100, 980],
itemStyle: { color: '#5470c6' }
},
{
name: '直通率',
type: 'line',
yAxisIndex: 1, // ⭐ 关键:用右侧 Y 轴
data: [96.2, 95.8, 97.1, 94.5, 98.2, 96.8, 95.3],
smooth: true,
itemStyle: { color: '#ee6666' },
lineStyle: { width: 3 }
}
]
});
</script>
蓝色柱子表示每天产量(左 Y 轴,0~1500件),红色折线表示直通率(右 Y 轴,90~100%)。周五产量最高(1500件)且直通率也最高(98.2%)。可以清楚看到产量和质量的关联关系。
| Excel | ECharts | |
|---|---|---|
| 组合图 | 选中两组数据 → 组合图 | series 里放两个不同 type |
| 双 Y 轴 | 右键系列 → 设置次坐标轴 | yAxisIndex: 1 |
| 图例 | 自动生成 | legend: {} 即可 |
09 · 实时数据更新
你在站里装了一个实时销量显示屏。每卖出一杯,数字就自动 +1。不需要你手动刷新,它自己会更新。
制造业大屏的核心需求:OEE 仪表盘每 2 秒刷新一次,车间大屏数据实时滚动。用 setOption + setInterval 实现。
核心思路
- 用
setInterval定时获取新数据 - 用
chart.setOption()更新图表(ECharts 会自动做动画过渡) - 用
dispatchAction控制高亮、tooltip 等交互
完整代码 — OEE 仪表盘实时刷新
<div id="realtime-gauge" style="width:600px;height:400px"></div>
<script>
var rtGauge = echarts.init(document.getElementById('realtime-gauge'));
var oee = 78.5; // 初始值
function renderGauge(val) {
rtGauge.setOption({
series: [{
type: 'gauge',
min: 0, max: 100,
detail: { formatter: '{value}%', fontSize: 32 },
axisLine: {
lineStyle: {
width: 20,
color: [[0.6,'#ee6666'],[0.8,'#fac858'],[1,'#91cc75']]
}
},
data: [{ value: val, name: 'OEE(实时)' }]
}]
});
}
renderGauge(oee);
// 每 2 秒模拟 OEE 波动
setInterval(function() {
oee = oee + (Math.random() - 0.48) * 3; // 小幅波动
oee = Math.max(60, Math.min(98, oee)); // 限制在 60~98
oee = Math.round(oee * 10) / 10; // 保留一位小数
renderGauge(oee);
}, 2000);
</script>
仪表盘的指针每 2 秒平滑移动一次,数值在 60~98 之间波动。过渡动画自动完成,不需要额外配置。
dispatchAction — 控制交互
除了更新数据,还可以用 dispatchAction 程序化触发交互:
// 高亮某个数据项(比如停机最多的设备)
chart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: 2 // 第 3 个数据项
});
// 显示 tooltip
chart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: 2
});
// 图表联动:一个图点击,另一个图跟着更新
chart1.on('click', function(params) {
chart2.setOption({ /* 根据点击更新 */ });
});
10 · 响应式与自适应
你的销量大屏本来挂在墙上(大屏),现在老板想在手机上也能看。图表要自动缩放,不能在大屏上很好看、在手机上就挤成一团。
核心:监听窗口变化,调用 resize()
// 方法1:监听 window resize(基础方案)
window.addEventListener('resize', function() {
myChart.resize();
});
// 方法2:多个图表一起 resize
window.addEventListener('resize', function() {
chart1.resize();
chart2.resize();
chart3.resize();
});
// 方法3:防抖 resize(推荐,避免频繁触发)
var resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
myChart.resize();
}, 300);
});
// 方法4:容器自适应(CSS 方案,推荐)
// 容器用 CSS 百分比宽度,图表自动跟随
// <div id="chart" style="width:100%;height:400px"></div>
大屏适配方案
制造业大屏通常是固定分辨率(如 1920x1080),可以用 CSS transform: scale() 做等比缩放:
/* 大屏容器:固定设计稿尺寸,自动缩放 */
.dashboard {
width: 1920px;
height: 1080px;
transform-origin: 0 0;
position: fixed;
top: 0;
left: 0;
}
<script>
// 根据窗口大小计算缩放比例
function autoScale() {
var scaleX = window.innerWidth / 1920;
var scaleY = window.innerHeight / 1080;
var scale = Math.min(scaleX, scaleY);
document.querySelector('.dashboard').style.transform =
'scale(' + scale + ')';
}
autoScale();
window.addEventListener('resize', autoScale);
</script>
11 · 配色方案
配色影响视觉感受:暖色调让人感觉温馨,冷色调让人感觉干净。制造业大屏通常用深色背景 + 科技感配色——因为大屏在暗处观看,深色背景减少眩光,亮色数据更突出。
制造业大屏配色原则
- 深色背景(#0d1b2a 或 #1a1a2e)——减少屏幕眩光
- 工业蓝作为主色调——科技感、稳重
- 绿色表示正常/达标,黄色表示警告,红色表示异常/报警
- 避免过多鲜艳颜色——大屏信息密度高,颜色要克制
开箱即用的深色主题配置
// 复制这个配置,所有图表共用
var darkTheme = {
backgroundColor: '#0d1b2a', // 深色背景
color: [ // 图表配色板
'#00d2ff', // 科技蓝(主色)
'#00e676', // 工业绿(正常/达标)
'#ff9100', // 警告橙(注意)
'#ff1744', // 报警红(异常)
'#D2A8FF', // 辅助紫
'#18ffff' // 青色辅助
],
title: {
textStyle: { color: '#e0e0e0', fontSize: 18 },
subtextStyle: { color: '#90a4ae' }
},
legend: {
textStyle: { color: '#b0bec5' }
},
xAxis: {
axisLine: { lineStyle: { color: '#37474f' } },
axisLabel: { color: '#90a4ae' },
splitLine: { lineStyle: { color: '#263238' } }
},
yAxis: {
axisLine: { lineStyle: { color: '#37474f' } },
axisLabel: { color: '#90a4ae' },
splitLine: { lineStyle: { color: '#263238' } }
},
tooltip: {
backgroundColor: 'rgba(13,27,42,0.9)',
borderColor: '#37474f',
textStyle: { color: '#e0e0e0' }
}
};
// 使用方式:传入 init 的第二个参数
// var chart = echarts.init(dom, darkTheme);
// 或者:chart.setOption({ ...darkTheme, series: [...] });
12 · 速查表
一张表掌握所有常用图表,打印出来贴工位上。
| 图表类型 | 什么时候用 | 关键配置 | 制造业场景 |
|---|---|---|---|
柱状图type: 'bar' |
比较不同类别的数值大小 | xAxis.type: 'category' label: { show: true } |
各产线 OEE 对比 各班次产量排名 各机台停机时长 |
折线图type: 'line' |
展示时间趋势变化 | smooth: true(平滑) areaStyle: {}(面积) markLine(参考线) |
24h 产量趋势 月度 OEE 走势 温度监控曲线 |
饼图type: 'pie' |
展示各部分占总体的比例 | radius: ['40%','70%'](环形) emphasis(悬浮效果) |
停机原因分布 不良品类型占比 能耗分类 |
仪表盘type: 'gauge' |
展示单个百分比指标 | min / max axisLine(颜色区间) detail(中央数字) |
OEE 仪表盘 设备利用率 直通率监控 |
地图type: 'map' |
展示地理分布数据 | map: 'china' visualMap(颜色映射) registerMap 注册 |
各车间产量热力图 全国工厂分布 供应链地图 |
动态排序type: 'bar' |
动态展示排名变化 | setInterval 定时更新 sort 排序 inverse: true |
机台产量排名变化 各厂产能竞赛 年度数据对比 |
组合图bar + line |
同时展示不同量纲数据 | yAxisIndex: 1(右轴) 两个不同 type 的 series |
产量 + 直通率 能耗 + 单位成本 产量 + 不良率 |
散点图type: 'scatter' |
展示两个变量的相关性 | symbolSize(点大小) visualMap(颜色映射) |
温度 vs 不良率 速度 vs 质量 设备位置分布 |
堆叠柱状图stack: 'x' |
展示各部分构成 + 总量 | stack 属性相同则堆叠 label: { position: 'inside' } |
停机时长分类堆叠 各产线不良品构成 能耗分时段堆叠 |
雷达图type: 'radar' |
多维度综合评估 | radar.indicator(维度) 多个 series 对比 |
产线综合评分 供应商能力评估 设备五维评价 |
常用配置速查
| 需求 | 配置 |
|---|---|
| 图表标题 | title: { text: '标题', left: 'center' } |
| 鼠标提示 | tooltip: { trigger: 'axis' }(折线/柱状用 axis,饼图用 item) |
| 图例 | legend: { bottom: 10 } |
| 显示数值 | label: { show: true, position: 'top' } |
| 颜色 | itemStyle: { color: '#00d2ff' } |
| 动画时长 | animationDuration: 1000(毫秒) |
| 保存为图片 | toolbox: { feature: { saveAsImage: {} } } |
| 缩放 | dataZoom: [{ type: 'inside' }] |
| 更新数据 | chart.setOption({ series: [{ data: [...] }] }) |
| 响应式 | window.addEventListener('resize', () => chart.resize()) |