vue2实现数据聚合【scatter-clustering】组件封装
实现如下效果:

效果展示:https://code.juejin.cn/pen/7228568245148581943
如果不会请移步到官网的栗子,请点击查看
直接给大家上代码:
- 整体代码片段

1 <template>
2 <div ref="echarts" style="width: 100%; height:300px;"></div>
3 </template>
4 <script>
5 /* eslint-disable */
6 import { setClusterOption } from "@/util/clusterConfig";
7 import ecStat from 'echarts-stat';
8
9 export default {
10 name: 'ClusterDom',
11 props: ["simulationList", "pieCount"],
12 data() {
13 return {
14 }
15 },
16 mounted() {
17 this.$nextTick(() => {
18 this.loadBars();
19 });
20 },
21 methods: {
22 loadBars() {
23 this.$nextTick(function () {
24 let myChart = this.$echarts.init(this.$refs.echarts) // 绘制图表
25 this.$echarts.registerTransform(ecStat.transform.clustering);
26
27 // 指定图表的配置项和数据
28 let text = "", axisData = [];
29
30 if(this.simulationList.length){
31 this.simulationList.forEach((item, index) => {
32 axisData[index] = item.map(Number);
33 });
34 }
35
36 text = `聚类分布模拟呈现`;
37 let option = setClusterOption(text, axisData, this.pieCount);
38
39 // 使用刚指定的配置项和数据显示图表。
40 myChart.setOption(option);
41 window.addEventListener('resize', function () {
42 setTimeout(function () {
43 myChart.resize();
44 }, 200)
45 });
46 });
47 }
48 }
49 }
50 </script>
- clusterConfig.js

1 import color from '@/util/colorConfig.js';
2
3 // 散点图
4 export const setClusterOption = (text, data, pieCount) => {
5 const CLUSTER_COUNT = pieCount;
6 const DIENSIION_CLUSTER_INDEX = 2;
7 let colorArr = color.slice(0, pieCount);
8
9 let option = {
10 title: {
11 text,
12 textStyle: {
13 color: "#666",
14 fontSize: 16,
15 fontWeight: "normal",
16 top: "0"
17 }
18 },
19 dataset: [
20 {
21 source: data
22 },
23 {
24 transform: {
25 type: 'ecStat:clustering',
26 config: {
27 clusterCount: CLUSTER_COUNT,
28 outputType: 'single',
29 outputClusterIndexDimension: DIENSIION_CLUSTER_INDEX
30 }
31 }
32 }
33 ],
34 tooltip: {
35 position: 'top'
36 },
37 visualMap: {
38 show: false,
39 type: 'piecewise',
40 top: 'middle',
41 min: 0,
42 max: CLUSTER_COUNT,
43 left: 10,
44 splitNumber: CLUSTER_COUNT,
45 dimension: DIENSIION_CLUSTER_INDEX
46 },
47 grid: {
48 top: "15%",
49 left: "0",
50 // right: "0",
51 bottom: "0",
52 containLabel: true
53 },
54 xAxis: {},
55 yAxis: {},
56 series: {
57 type: 'scatter',
58 encode: { tooltip: [0, 1] },
59 symbolSize: 10,
60 itemStyle: {
61 borderColor: '#555'
62 },
63 data: data.map(item => {
64 return {
65 value: item,
66 itemStyle: {
67 normal: {
68 color: colorArr[item.pop()],
69 },
70 }
71 }
72 }),
73 datasetIndex: 1
74 }
75 };
76 return option;
77 }
- colorConfig.js

1 let colorArr = [
2 '#4EADFF',
3 '#55D9FA',
4 '#9CA5E9',
5 '#2E98F3',
6 '#5FCAD2',
7 '#69C97F',
8 '#F2CA30',
9 '#FFA97A',
10 '#DAC4AA',
11 '#CF98E9',
12 '#F6B4DE',
13 '#F37379',
14 '#98ACC3',
15 '#75E4C1',
16 '#BEDC63',
17 '#98CFD0',
18 '#9B92F1',
19 '#26A479',
20 '#6068B3',
21 '#AE9E42',
22 '#D17952'
23 ];
24
25 export default colorArr;
鉴定完毕,欢迎友友们一起交流学习!!
vue2实现数据聚合【scatter-clustering】组件封装的更多相关文章
- vue2.0项目 calendar.js(日历组件封装)
最近一直闲来无事,便寻思着做一下自己的个人项目,也想说能使用现在比较流行的一些mvvm框架来做,于是就选用了这样的一个技术栈vue2.0+vue-router+vuex+webpack来做,做得也是多 ...
- Vuejs 页面的区域化与组件封装
组件的好处 当我用vue写页面的时候,大量的数据页面渲染,引入组件简化主页面的代码量,当代码区域块代码差不多相同时,组件封装会更加简化代码.组件是Vue.js最强大的功能之一. 组件可以扩展HTML元 ...
- Hadoop大数据生态系统及常用组件(山东数漫江湖)
经过多年信息化建设,我们已经进入一个神奇的“大数据”时代,无论是在通讯社交过程中使用的微信.QQ.电话.短信,还是吃喝玩乐时的用到的团购.电商.移动支付,都不断产生海量信息数据,数据和我们的工作生活密 ...
- vue组件封装及父子组件传值,事件处理
vue开发中,把有统一功能的部分提取出来,作为一个独立的组件,在需要使用的时候引入,可以有效减少代码冗余.难点在于如果封装,使用,如何传参,派发事件等,我会采取倒叙的方式进行说明.(本文总结于Vue2 ...
- [druid]大数据挑战——如何使用Druid实现数据聚合
-- 知道你为什么惧组件很多的一些开源软件? 因为缺乏阅读能力. 最近我接手了druid+kafka+elk一套等日志系统. 但是我对druid很陌生, 周旋了几天, 官网文档快速开始照着做了下. 看 ...
- vue教程3-05 vue组件数据传递、父子组件数据获取,slot,router路由
vue教程3-05 vue组件数据传递 一.vue默认情况下,子组件也没法访问父组件数据 <!DOCTYPE html> <html lang="en"> ...
- picker(级联)组件及组件封装经验
组件封装的几个经验 a.参数:最佳方式,仅一个object参数,所需要的实际参数,作为对象属性传入. 如此,便于数据的处理和扩展.例如,后期扩展需要增加参数,或者调整参数时,如果使用的对象传入,老的调 ...
- vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据
在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...
- Spring Cloud(六):Hystrix 监控数据聚合 Turbine【Finchley 版】
Spring Cloud(六):Hystrix 监控数据聚合 Turbine[Finchley 版] 发表于 2018-04-17 | 更新于 2018-05-07 | 上一篇我们介绍了使用 H ...
- Linux组件封装(五)一个生产者消费者问题示例
生产者消费者问题是计算机中一类重要的模型,主要描述的是:生产者往缓冲区中放入产品.消费者取走产品.生产者和消费者指的可以是线程也可以是进程. 生产者消费者问题的难点在于: 为了缓冲区数据的安全性,一次 ...
随机推荐
- kotlin 函数格式大赏
fun main() { // 一个有引用的lambda表达式 val f11: (Int, Int) -> Unit = {n1, n2 -> println("f11 is ...
- Redis系列15:使用Stream实现消息队列(精讲)
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- 强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验
强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述.序列决策.动作空间定义.策略价值函数.探索与利用.Gym强化学习实验 1.强化学习核心概念 强化学习(reinforcement le ...
- 洛谷 P8026 [ONTAK2015] Bajtocja
简要题意 有 \(d\) 张初始为空的无向图,每张中都有 \(n\) 个点,标号从 \(1\) 到 \(n\),\(m\) 次操作,每次往一张图加一条边,并询问有多少有序数对 \((a, b)\) 使 ...
- 花朵识别系统Python+TensorFlow+Django+卷积神经网络算法实现
一.背景 花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台. ...
- google colab使用体验
复现的TRSSL 的代码似乎是python3.8的,在本地跑电脑带不起来,即时把处理图形数改为1 但是colab用3.8不太好下载包, 因此直接上了3.9 除了一些库没有意外,遇到了一点小问题: Ca ...
- 【java-Err】 Generating equals/hashCode implementation but without a call to superclass,
@EqualsAndHashCode 默认不继承父类 修复此问题的方法很简单: 1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object ot ...
- SQL 查询 总结 【行子查询 ; 列子查询 ; 表子查询 ; 自链接 ; 内连接 ;外连接 ; 无规则链接 ……】
简单介绍一下连接方式: 1.1.使用无连接规则连接两表 无限规则 也就简单的 select * from tableA , tableB 即得到一个笛卡尔积. 什么是 笛卡尔积 在 我的 另外 ...
- GGTalk 开源即时通讯系统源码剖析之:虚拟数据库
继上篇<GGTalk 开源即时通讯系统源码剖析之:服务端全局缓存>详细介绍了 GGTalk 对需要频繁查询数据库的数据做了服务端全局缓存处理,以降低数据库的读取压力以及加快客户端请求的响应 ...
- Mysql基础6-常用数据库函数
一.字符串函数 1.常见Mysql内置字符串函数 concat(s1,s2,s3,...):字符串拼接,将s1,s2,s3...等拼接成一个字符串 lower(str):将字符串str全部转为小写 u ...