🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# :-: 散点图(scatter) ### 散点图可以帮助我们推断出变量间的相关性:如身高和体重的关系,经常结合地图使用 ``` 案例: 1.新建一个容器 <div style="width:600px;height:400px;margin:100px auto" id="chart"></div> 2.数据及配置 //x轴和y轴数据 : 二维数组 [['身高','体重'],['身高','体重'],...] //type类型是scatter,x和y轴都是value var axisData = [ [172.1,125.6],[164,125.6],[165,128.6], [177.1,125.6],[164,185.6],[175,148.6], [175.1,125.6],[164,145.6],[185,148.6] ]; //初始化 var myCharts = this.$echarts.init(document.getElementById('chart')); var option = { xAxis : {type : 'value',scale:true},//x轴,scale:摆脱0值比例 yAxis : {type : 'value',scale:true},//y轴,scale:摆脱0值比例 series : [ { type : 'scatter', //类型 data : axisData, //数据 } ] }; myCharts.setOption(option); ``` :-: ![](https://img.kancloud.cn/78/b0/78b0bbc2e9581c7589c03b8d1fd0d502_567x346.png) :-: ![](https://img.kancloud.cn/b6/03/b603972f58aa4ef58cfcc18d9eba9e8e_650x366.png) ## 案例:气泡图效果,筛选出肥胖的人,并且颜色和大小做出区分 ``` series : [ { type : 'scatter', //类型 data : axisData, // symbolSize : 20,//控制散点大小,固定值 symbolSize : function(arg){//控制散点大小,也支持回调函数,可以单独控制某些散点的大小 // 筛选出肥胖的人,并且散点大小和颜色区分 // console.log(arg) var height = arg[0] / 100;//身高(m) var weight = arg[1] / 2;//体重(kg) var bmi = weight / (height * height); if(bmi > 28){ return 20; //大于28,散点大小20 }else{ return 5; //小于28,大小5 } }, itemStyle:{ //散点样式 // color : 'green',//全部样式颜色 color : function(arg){ //回调函数控制颜色 var height = arg.data[0] / 100;//身高(m) var weight = arg.data[1] / 2;//体重(kg) var bmi = weight / (height * height); if(bmi > 28){ return 'red'; //大于28,红色 }else{ return 'green'; //小于28,绿色 } } }, } ] ``` 效果图: :-: ![](https://img.kancloud.cn/71/ac/71acc3b0df077af051ddf66e54140f76_698x441.png) ## 案列2:涟漪动画效果 ``` //配置项: series : [ { // type : 'scatter',//常规散点类型 type : 'effectScatter',//涟漪动画类型 showEffectOn : 'emphasis',//默认:render,emphasis:鼠标滑过有动画 rippleEffect:{ scale : 10, //控制涟漪动画缩放 }, data : axisData, // symbolSize : 20,//控制散点大小,固定值 symbolSize : function(arg){//控制散点大小,也支持回调函数,可以单独控制某些散点的大小 // 筛选出肥胖的人,并且散点大小和颜色区分 // console.log(arg) var height = arg[0] / 100;//身高(m) var weight = arg[1] / 2;//体重(kg) var bmi = weight / (height * height); if(bmi > 28){ return 20; //大于28,散点大小20 }else{ return 5; //小于28,大小5 } }, itemStyle:{ //散点样式 // color : 'green',//全部样式颜色 color : function(arg){ //回调函数控制颜色 var height = arg.data[0] / 100;//身高(m) var weight = arg.data[1] / 2;//体重(kg) var bmi = weight / (height * height); if(bmi > 28){ return 'red'; //大于28,红色 }else{ return 'green'; //小于28,绿色 } } }, } ] ``` 默认效果: :-: ![](https://img.kancloud.cn/d9/ea/d9ea2afba102e461578d731d651d184f_726x455.png) 鼠标移入显示动画: :-: ![](https://img.kancloud.cn/30/de/30def0c4b1c05ddc9a5231c5a10737cc_631x395.png)