ECharts 配置项速查:从柱状图到折线图的实战通关指南
很多初学者刚接触 ECharts 时,习惯一头扎进几千行的官方文档里硬啃。结果往往是盯着 xAxis、yAxis、series 这些关键字发呆,半天画不出一个像样的图。其实,ECharts 的核心逻辑比你想的简单得多——它本质上就是一个 JSON 对象,你把对应位置的参数填对,图表自然就出来了。
今天不聊深奥的原理,咱们直接拿一张“配置项对照表”作为地图,手把手带你画出人生中第一个柱状图和折线图,然后教你怎么改颜色、加交互,最后再回头去理解那些看似复杂的坐标轴和系列概念。
第一步:抛弃文档,先建一个最简骨架
别急着看文档,我们先在本地建一个简单的 HTML 文件。这一步的目标只有一个:让图表“看见”你。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>我的第一个 ECharts 图</title>
<!-- 引入 ECharts -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
</head>
<body>
<!-- 图表容器 -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
// 选项配置,先留空,后面填
var option = {};
myChart.setOption(option);
</script>
</body>
</html>
当你打开这个文件,看到一个空白的大盒子时,恭喜你,环境已经就绪。接下来的所有操作,都是在修改 option 这个对象。
第二步:柱状图——配置项对照表的第一个入口
柱状图是理解 ECharts 结构最好的入门案例。因为它的结构最对称:数据在 X 轴,高度在 Y 轴。
我们来看这张“对照表”的核心逻辑:
| 配置项 | 作用 | 比喻 |
|---|---|---|
xAxis |
横坐标轴 | 尺子的刻度 |
yAxis |
纵坐标轴 | 尺子的测量值 |
series |
数据系列 | 具体的柱状条 |
data |
数据值 | 柱子的高度 |
现在,我们往 option 里填内容:
var option = {
// 1. 标题:给图表起个名字
title: {
text: '本周销售额',
left: 'center'
},
// 2. 提示框:鼠标悬停时显示详情
tooltip: {
trigger: 'axis'
},
// 3. 图例:显示在右上角,告诉你蓝色代表什么
legend: {
data: ['销售额']
},
// 4. 工具栏:让用户能保存图片或切换图表类型
toolbox: {
feature: {
saveAsImage: {},
dataView: {},
magicType: { type: ['line', 'bar'] }
}
},
// 5. 坐标轴:这是最关键的部分
xAxis: {
type: 'category', // 类目轴,用于横轴
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value' // 值轴,用于纵轴,自动计算刻度
},
// 6. 系列:数据长什么样
series: [{
name: '销售额',
type: 'bar', // 重点:这里指定是柱状图
data: [120, 200, 150, 80, 70, 110, 130],
// 可以让柱子圆角一点,更美观
itemStyle: {
borderRadius: [5, 5, 0, 0]
}
}]
};
关键点解析:
xAxis.type: 'category'表示横轴是分类的,比如星期、商品名。yAxis.type: 'value'表示纵轴是数值的,自动适应数据范围。series.type: 'bar'告诉 ECharts 你要画柱子。如果你改成'line',数据点就会用线连起来——这就是为什么我们说先画柱状图,再改类型就能画折线图。
第三步:折线图——只需改一个字
现在,你已经有了一个能跑的柱状图。接下来,我们要把它变成折线图。
注意,我们不需要重新写一遍所有配置。只需要改两个地方:
series.type从'bar'改成'line'- 可选:加上
areaStyle让折线下方填充颜色,更有视觉冲击力
// 修改后的 series 部分
series: [{
name: '销售额',
type: 'line', // <--- 就改了这一个词
data: [120, 200, 150, 80, 70, 110, 130],
// 增加面积填充,让折线图更好看
areaStyle: {
opacity: 0.3
},
// 让数据点更明显
symbol: 'circle',
symbolSize: 8
}]
刷新页面,你会发现:柱子变成了平滑的曲线,数据点上有小圆圈。这就是 ECharts 的魅力——配置项复用率极高。
第四步:改颜色——告别默认蓝白
很多新手抱怨颜色丑,其实改颜色非常简单。我们可以在 series 里直接定义 itemStyle 和 lineStyle。
series: [{
name: '销售额',
type: 'line',
data: [120, 200, 150, 80, 70, 110, 130],
// 折线颜色
lineStyle: {
color: '#ff7f50', // 珊瑚色
width: 3
},
// 数据点颜色
itemStyle: {
color: '#ff7f50'
},
// 填充区域颜色(渐变更好看)
areaStyle: {
color: {
type: 'linear',
x: 0, y: 0, x2: 0, y2: 1,
colorStops: [
{ offset: 0, color: 'rgba(255, 127, 80, 0.5)' },
{ offset: 1, color: 'rgba(255, 127, 80, 0.1)' }
]
}
}
}]
小技巧: 如果你想要多组数据(比如同时展示“销售额”和“利润”),只需要在 series 数组里再加一个对象:
series: [
{
name: '销售额',
type: 'line',
data: [120, 200, 150, 80, 70, 110, 130],
lineStyle: { color: '#ff7f50' }
},
{
name: '利润',
type: 'line',
data: [30, 50, 40, 20, 15, 35, 45],
lineStyle: { color: '#00CED1', type: 'dashed' } // 虚线
}
]
这时候,记得更新 legend.data 和 title.text,让图例也能对应上。
第五步:加交互——让图表“活”起来
图表不是静态图片,ECharts 提供了丰富的交互能力。我们来实现三个最常用的交互:
1. 鼠标悬停提示(Tooltip)
之前我们加了 tooltip: { trigger: 'axis' },现在让它更智能一点:
tooltip: {
trigger: 'axis',
formatter: function(params) {
// params 是当前悬停的数据点数组
var res = params[0].name + '<br/>';
params.forEach(function(item) {
// 自定义格式:名称 + 数值 + 百分比(如果有)
res += item.marker + item.seriesName + ' : ' + item.value + '<br/>';
});
return res;
},
backgroundColor: 'rgba(255,255,255,0.9)',
borderColor: '#ccc',
textStyle: { color: '#333' }
}
2. 点击柱子跳转到详情页
// 监听 click 事件
myChart.on('click', function(params) {
if (params.componentType === 'series') {
// 弹出提示,或者跳转
alert('你点击了 ' + params.name + ' 的 ' + params.seriesName + ',数值为 ' + params.value);
// window.location.href = '/detail?id=' + params.name;
}
});
3. 数据区域缩放(DataZoom)
当数据太多时,x 轴会挤在一起。加上 dataZoom,用户可以拖动滑块或滚轮缩放:
dataZoom: [
{
type: 'inside', // 支持鼠标滚轮缩放
start: 0,
end: 100
},
{
type: 'slider', // 底部出现拖动条
start: 0,
end: 100,
height: 20
}
]
把这个配置放在 option 顶层,和 xAxis、yAxis 平级。
第六步:理解坐标轴和系列——现在可以回头啃文档了
好了,现在你已经亲手画出了柱状图、折线图,改了颜色,加了交互。这时候,你再回头看官方文档,就不会感到恐惧了。
因为你知道:
xAxis和yAxis只是控制尺子的样式。- 想改刻度?
axisLabel.formatter - 想改线颜色?
axisLine.lineStyle - 想隐藏?
show: false
- 想改刻度?
series是数据的载体。- 想加标记点?
markPoint - 想加参考线?
markLine - 想改动画?
animationDuration
- 想加标记点?
举个例子,如果你想让柱状图的柱子之间有空隙,不用到处找,直接在 series 里加:
series: [{
type: 'bar',
barGap: '30%', // 柱间距离
barCategoryGap: '20%', // 类目间距
data: [120, 200, 150, 80, 70, 110, 130]
}]
实战案例:一张图看懂配置层级
最后,我们用一张结构图来总结 ECharts 的配置层级,方便你对照查找:
option {
title { ... } // 标题
tooltip { ... } // 提示框
legend { ... } // 图例
toolbox { ... } // 工具栏
grid { ... } // 绘图网格(控制图的大小和位置)
xAxis { ... } // X 轴
yAxis { ... } // Y 轴
dataZoom { ... } // 区域缩放
series: [
{
name: '...',
type: 'bar', // 图表类型
data: [], // 数据
itemStyle: { ... } // 样式
markPoint: { ... } // 标记点
markLine: { ... } // 参考线
}
]
}
给你的学习建议
- 先抄后改:去 ECharts 官方示例库(gallery.echartsjs.com)找一个类似的图,把代码复制下来,改数据、改颜色,观察变化。
- 用浏览器调试:在
console.log(option)里看看你生成的配置对象,能帮你理清结构。 - 不要死记:ECharts 配置项几百个,没人能全记住。你要做的是知道“大概在哪里”,需要时能查文档。
- 从简单开始:先画一个单系列的柱状图,再多加一个系列,再换折线图,再加 dataZoom……一步步来,信心会爆棚。
记住,ECharts 不是用来“学”的,是用来“用”的。配置项对照表是你最好的朋友,实例代码是你的起点。现在,打开你的编辑器,画出第一个图吧!
