ECharts 交互组件
ECharts 提供了丰富的 交互组件,如工具栏、数据缩放、提示框、图例等,帮助用户更方便地操作和查看图表数据。
1. 工具栏(toolbox)
toolbox
提供了常见的交互功能,如 保存图片、数据视图、动态刷新、区域缩放等。
1.1 基本使用
var option = {
toolbox: {
show: true,
feature: {
saveAsImage: { show: true }, // 保存为图片
dataView: { show: true, readOnly: false }, // 查看数据
restore: { show: true }, // 还原
magicType: { show: true, type: ['line', 'bar'] }, // 切换图表类型
dataZoom: { show: true } // 数据缩放
}
},
xAxis: { type: 'category', data: ['A', 'B', 'C'] },
yAxis: {},
series: [{ type: 'bar', data: [10, 20, 30] }]
};
📌 功能说明
saveAsImage
:将图表保存为 PNG 图片dataView
:显示原始数据,可编辑restore
:重置图表magicType
:切换图表类型(折线图/柱状图)dataZoom
:添加缩放功能
2. 数据缩放(dataZoom)
dataZoom
允许用户缩放 X 轴或 Y 轴 数据,适用于大数据量图表。
2.1 水平滚动缩放
var option = {
dataZoom: [{ type: 'slider', start: 10, end: 60 }], // 拖动缩放
xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] },
yAxis: {},
series: [{ type: 'bar', data: [10, 20, 30, 40, 50, 60, 70] }]
};
📌 说明
type: 'slider'
:带滑块的缩放start: 10, end: 60
:初始缩放范围(10% – 60%)
2.2 鼠标滚轮缩放
var option = {
dataZoom: [{ type: 'inside' }], // 鼠标滚轮缩放
xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] },
yAxis: {},
series: [{ type: 'bar', data: [10, 20, 30, 40, 50, 60, 70] }]
};
📌 说明
type: 'inside'
:启用 鼠标滚轮缩放- 适用于 大数据量时的交互优化
3. 提示框(tooltip)
tooltip
用于 悬浮时显示数据详情,支持多种触发方式。
3.1 基本使用
var option = {
tooltip: { trigger: 'axis' }, // 触发方式
xAxis: { type: 'category', data: ['A', 'B', 'C'] },
yAxis: {},
series: [{ type: 'line', data: [10, 20, 30] }]
};
📌 说明
trigger: 'axis'
:悬浮时显示 整条 X 轴数据- 适用于 折线图、柱状图
3.2 自定义格式
var option = {
tooltip: {
trigger: 'item',
formatter: function (params) {
return `${params.name}: <strong>${params.value}</strong> 单位`;
}
},
xAxis: { type: 'category', data: ['A', 'B', 'C'] },
yAxis: {},
series: [{ type: 'bar', data: [10, 20, 30] }]
};
📌 说明
formatter
自定义格式${params.name}
获取 类别${params.value}
获取 数据值
4. 图例(legend)
legend
允许用户 显示/隐藏 系列数据,适用于多系列图表。
4.1 基本使用
var option = {
legend: { show: true },
xAxis: { type: 'category', data: ['A', 'B', 'C'] },
yAxis: {},
series: [
{ name: '系列1', type: 'line', data: [10, 20, 30] },
{ name: '系列2', type: 'bar', data: [5, 15, 25] }
]
};
📌 说明
- 点击图例可隐藏/显示系列
4.2 位置设置
legend: {
orient: 'vertical', // 垂直排列
left: 'right' // 右侧显示
}
5. 数据区域选择(brush)
brush
允许用户选择数据区域,适用于 数据分析、放大查看等。
5.1 开启矩形选择
var option = {
brush: { toolbox: ['rect', 'polygon', 'clear'] },
xAxis: { type: 'category', data: ['A', 'B', 'C', 'D', 'E'] },
yAxis: {},
series: [{ type: 'bar', data: [10, 20, 30, 40, 50] }]
};
📌 功能
- rect:矩形选择
- polygon:多边形选择
- clear:清除选择
6. 全局手势缩放
允许用户通过手势或鼠标缩放整个图表:
var option = {
geo: {
map: 'china',
roam: true // 开启缩放
}
};
📌 适用于 地图、散点图等
7. 交互组件应用场景
组件 | 功能 | 适用图表 |
---|---|---|
toolbox | 导出、数据视图 | 所有图表 |
dataZoom | 缩放数据 | 折线图、柱状图 |
tooltip | 数据提示 | 所有图表 |
legend | 控制显示 | 多系列图表 |
brush | 选择数据 | 柱状图、散点图 |
🚀 你需要哪种交互组件?
发表回复