散点图介绍
1、百度:散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。
2、ArcGIS散点图:散点图使用数据值作为 x,y 坐标来绘制点。它可以揭示格网上所绘制的值之间的关系,还可以显示数据的趋势。当存在大量数据点时,散点图的作用尤为明显。散点图与折线图相似,而不同之处在于折线图通过将点或数据点相连来显示每一个变化。
3、大白话(个人理解):散点图是用点的大小,反应这组数据的值的大小
效果图
这里以地图为例,使用是gis引擎,用户输入的半径范围为10-60,那么这组数据中最小值的点的半径就是10,最大值的点的半径就是60
代码
//ScatterData为一组点位数据,count为点位的臭氧浓度
let ScatterData = [
{ "lng": 118.388995, "lat": 35.02895273, "count": 0.8 },
{ "lng": 118.36172, "lat": 35.08427, "count": 0.2 },
{ "lng": 118.3564897, "lat": 35.02154007, "count": 0.7 },
{ "lng": 118.28092, "lat": 35.00027, "count": 0.2 }]
//从ScatterData中提取浓度字段
let countArr
ScatterData.map(item => {
countArr.push(Number(item.count))
})
//提取出浓度的最大最小值
let maxData = Math.max(...countArr);
let minData = Math.min(...countArr);
//用户输入的半径范围
let minSize = 10;
let maxSize = 60;
//计算比例
let proportion = (maxSize - minSize) / (maxData - minData)
//遍历数组给数据的每个坐标添加点符号
ScatterData.map(item => {
point = new Map.Point({
coordinate: [item.lng, item.lat], //点的坐标
style: {
pointType: 'circle', //点的形状
radius: Number(item.count - minData) * proportion + minSize //计算半径
},
});
this.map.add(point)
})
重点
算法核心为 proportion计算比例 和对 radius散点半径 的赋值
拓展
掌握了核心:计算比例,应用处就很多,可以结合echarts饼状图,形成散点饼,更能展示出的对复杂数据的每个点位的区分,