在 ECharts 中,“联动筛选”一般有几种常见场景和做法,下面按常用程度给你说明,并附示例代码。
connect(多图联动)适合:多个 ECharts 实例(如柱状图 + 折线图)联动 tooltip / 图例 / dataZoom
var chart1 = echarts.init(document.getElementById('chart1'));
var chart2 = echarts.init(document.getElementById('chart2'));
echarts.connect([chart1, chart2]);
✅ 效果:
click 事件 + 重新 setOptionchart.on('click', function (params) {
const name = params.name;
// 根据点击项过滤数据
const filteredData = rawData.filter(item => item.category === name);
chart.setOption({
series: [{
data: filteredData
}]
});
});
✅ 常见用途:
<select id="type">
<option value="all">全部</option>
<option value="A">A类</option>
<option value="B">B类</option>
</select>
document.getElementById('type').addEventListener('change', function () {
const value = this.value;
const data = value === 'all'
? rawData
: rawData.filter(d => d.type === value);
chart.setOption({
series: [{ data }]
});
});
思路:
chart.on('click', params => {
updateTable(params.name);
});
在 Vue / React 中:
setOption✅ 推荐方式(最清晰、最好维护)
| 场景 | 推荐方式 |
|---|---|
| 多图 tooltip 联动 | echarts.connect |
| 点击图表筛选 | chart.on('click') |
| 下拉 / 按钮筛选 | HTML 控件 |
| 图表 + 表格联动 | 事件 + 状态管理 |
| 复杂项目 | Vue / React 状态驱动 |
如果你能告诉我:
我可以直接给你一套可运行示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。