echarts-x数据筛选

echarts-x里的数据筛选有一个很大的bug

一开始我的数据展示如图所示:


数据筛选:将图上黄色的点隐藏掉

$.ajax({
url: './data/placemark.json',
success: function (data) {
var len = data.length;
for(var i = 0;i < data.length;i++){
if(data[i][2] > 100 && data[i][2] <= 200){
data.splice(i,1);
i--;
}
}
})


筛选过后,剩下的数据重新渲染在地图上,应该是少了几个对应的黄点,然而却变成了这样:只少了一个黄点,剩下的还在。



产生这种结果的原因就在于echarts-x的一个很难让人理解的bug——页面加载初始传入的数据有多少个,渲染在地图上的就必须一直是多少个,所以,经过刚才的筛选之后,数据里确实已经筛选掉那几个黄点了,但是因为渲染的机制,图上必须还得有七个点,那么剩下的几个三个点就由原来地图上本来就存在的点来补充,所以现在的效果是,图上仍然有七个点,不过有两个点重合了,所以看起来只有六个了。很难理解,如果理解不了,我只能说解决办法:在你筛选过几个点之后,对应的加上几个透明点。比如以下操作:

$.ajax({
url: './data/placemark.json',
success: function (data) {
var len = data.length;
for(var i = 0;i < data.length;i++){
if(data[i][2] > min && data[i][2] <= max){
data.splice(i,1);
i--;
}
}
for(var j=data.length;j<=len;j++){
if(data.length == 0){
data.push([10000,10000,301]);
}
else {
data.push([data[data.length-1][0],data[data.length-1][1],301]);
}

}
getData(data);
oneChart.hideLoading();
}
})


加入点的数值是我对应的条件所需要的,个人条件不同需要进行对应的修改。这样的话,看起来就达到了我们需要的效果,如图:


黄色的点都消失了!实际上是我在地图上某个不知名的坐标上加上了3个透明点!

echarts-x的文档和资料特别少,不知道为什么,希望大家能在研究的路上一帆风顺!

### 实现 ECharts 柱状图中的数据筛选 为了在 ECharts 的柱状图中实现数据筛选功能,可以利用 `dataZoom` 组件来完成这一需求。此组件允许用户通过拖拽滚动条或鼠标滚轮的方式动态调整显示的数据范围。 #### 使用 DataZoom 进行数据筛选 DataZoom 可以作用于 X 轴和 Y 轴上,在设置时需指定其类型以及所影响的轴: - 类型为 inside 表示内置缩放器,即可以通过鼠标的滑动来进行交互; - 类型为 slider 则表示外部滑块形式的控制器[^2]。 下面是一个简单的例子展示如何配置 dataZoom 来支持数据筛选: ```javascript option = { xAxis: { type: 'category', boundaryGap: true, data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: { type: 'value' }, series: [{ name:'销量', type:'bar', data:[5, 20, 36, 10, 10, 20] }], dataZoom: [ { type: 'slider', // 显示位置可调的工具栏样式,默认是水平方向上的 startValue: '衬衫',// 开始值对应X轴第一个元素名称 endValue: '高跟鞋'// 结束值对应最后一个可见项之前的那个项目名 }, { type: 'inside',// 不占位隐藏版,跟随用户的操作自动变化视窗大小 start: 0,// 百分比定义初始可视区域起点比例 end: 75 // 同样用百分比设定终点占比 } ] }; ``` 上述代码片段展示了如何创建两个不同类型的 dataZoom 控件,并将其应用于图表实例中。这样就可以让用户方便地对柱状图内的大量数据进行有效的浏览与分析了。 #### 关联 Vue 和 ECharts 如果是在基于 Vue.js 构建的应用程序里集成这样的功能,则还需要考虑模板部分的内容。对于这种情况下的 HTML 片段应该像这样编写[^3]: ```html <div> <!-- 图表容器 --> <div id="chart-container" style="width: 800px;height:400px;"></div> </div> ``` 接着可以在对应的 JavaScript 或 TypeScript 文件内初始化并渲染图表对象,同时应用之前提到过的 option 设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值