1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 大数据echarts折线图打标

大数据echarts折线图打标

时间:2018-09-01 22:58:49

相关推荐

大数据echarts折线图打标

需求

对折线图打标,echarts没有打标的组件,所以采用brush刷取代替打标部分。可以做到效果,但是不能完全达到想要的,妥协后还是可以用的。

打标:在折线图中选择部分,对该部分人工标记名称。之后即可把标记的部分作为大数据训练集训练。

方案

echarts的刷取,可以多选,首先默认设置多选刷取,其二,默认刷选,其三对每一块区域进行标识。

详细

1.默认可多刷模式设置,默认刷选模式

这个功能本来是echarts右上角tools配置中的一项,但是需要手动点击才可以。现在不允许用户变成单个的,所以要隐藏图标,而且还要有他的功能。

this.$nextTick(() => {this.markLineInstance.chart.dispatchAction({// 刷选模式的开关。使用此 action 可将当前鼠标变为可刷选状态。 事实上,点击 toolbox 中的 brush 按钮时,就是通过这个 action,将当前普通鼠标变为刷选器的。type: "takeGlobalCursor",// 如果想变为“可刷选状态”,必须设置。不设置则会关闭“可刷选状态”。key: "brush",brushOption: {// 参见 brush 组件的 brushType。如果设置为 false 则关闭“可刷选状态”。brushType: "rect",// 参见 brush 组件的 brushMode。如果不设置,则取 brush 组件的 brushMode 设置。brushMode: "multiple",},});});

以上代码可以直接将echarts的模式设置成多选的刷取模式。

至于为啥用nextTick,当然是在echart画图完成后才能获取到实例。

2.对刷取的每一个区域标识

echart自身是不分辨每个刷取的区域的,每个区域都存放在一个数组中。后续发现,每次新增的区域都在数组的最后,而更新之前的区域,他的位置并不会发生改变,无奈只能用index去标识唯一区域,同步维护一个名称数组,用于标识该区域自定义名称。通过index联系起来即可。同步增伤改即可。

brushHandler(e: any) {console.log(e.areas);if (this.currIndex != -1) {this.boxList[this.currIndex]["area"] = e.areas[0].coordRange;return;}e.areas.forEach((item: any, index: number) => {if (!this.boxList[index]) {this.boxList.push({tagName: "默认名称",tagId: +new Date(),area: item.coordRange,});} else {this.boxList[index]["area"] = item.coordRange;}});}

这是刷取事件,每次刷取,都会返回一个areas的一个数组保存所有的区域。每次刷取区域变化就更新数组,如果存在就更新坐标。如果不存在就新镇一个,新增的时候加上默认名称,id等等,这个是为了后续维护用的。这里包含了 新增和更新

删除的话我放在一个维护显示的表格中,不在图表上,在表格中点击删除,来改变图表的区域,代码如下

deleteArea(tagId: string) {let index = this.boxList.findIndex((item: any) => {return item["tagId"] == tagId;});this.boxList.splice(index, 1);this.changeAreas(this.boxList);}

changeAreas(areasArray: Array<object>) {let showArry: Array<object> = [];areasArray.forEach((item) => {showArry.push({xAxisIndex: 0,yAxisIndex: 0,brushType: "rect",coordRange: item["area"],});});this.markLineInstance.chart.dispatchAction({type: "brush",areas: showArry,});}

通过id找到要删除的index,通过index删除areas中的列表,并应用到echarts上,实现删除。

这是打标后的效果,这是调研版本的代码,正式环境的功能不便展示,用vue写也更方便

以上就是折线图打标所有功能。又不太清除的地方,烦请指出

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。