前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图表3 散点图

图表3 散点图

作者头像
Qwe7
发布2022-06-15 08:33:35
1.1K0
发布2022-06-15 08:33:35
举报
文章被收录于专栏:网络收集

3、图表3 散点图

1.散点图的实现步骤

步骤1 ECharts 最基本的代码结构

代码语言:javascript
复制
<!DOCTYPE html>
  <html lang="en">

  <head>
    <script src="js/echarts.min.js"></script>
  </head>

  <body>
    <div style="width: 600px;height:400px"></div>
    <script>
      var mCharts = echarts.init(document.querySelector("div")) var option = {}
      mCharts.setOption(option)
    </script>
  </body>

</html>

此时 option 是一个空空如也的对象

步骤2 准备 x 轴和 y 轴的数据

var data = [{ "gender": "female", "height": 161.2, "weight": 51.6 }, { "gender": "female", "height": 167.5, "weight": 59 }, { "gender": "female", "height": 159.5, "weight": 49.2 }, { "gender": "female", "height": 157, "weight": 63 }, { "gender": "female", "height": 155.8, "weight": 53.6 }, { "gender": "female", "height": 170, "weight": 59 }, { "gender": "female", "height": 159.1, "weight": 47.6 }, { "gender": "female", "height": 166, "weight": 69.8 }, { "gender": "female", "height": 176.2, "weight": 66.8 }, { "gender": "female", "height": 160.2, "weight": 75.2 }, { "gender": "female", "height": 172.5, "weight": 55.2 }, { "gender": "female", "height": 170.9, "weight": 54.2 }, { "gender": "female", "height": 172.9, "weight": 62.5 }, { "gender": "female", "height": 153.4, "weight": 42 }, { "gender": "female", "height": 160, "weight": 50 }, { "gender": "female", "height": 147.2, "weight": 49.8 },...此处省略...]

1

假设这个数据是从服务器获取到的, 数组中的每一个元素都包含3个维度的数据: 性别,身高,体重, 而散点图需要的数据是一个二维数组, 所以我们需要将从服务器获取到的这部分数据,通过代码生成散点图需要的数据

代码语言:javascript
复制
var axisData = []
for (var i = 0; i < data.length; i++) {
  var height = data[i].height
  var weight = data[i].weight
  var itemArr = [height, weight] axisData.push(itemArr)
}

axisData 就是一个二维数组, 数组中的每一个元素还是一个数组, 最内层数组中有两个元素, 一个代表身高, 一个代表体重

步骤3 准备配置项

xAxis 和 yAxis 的 type 都要设置为 value

在 series 下设置 type:scatte

代码语言:javascript
复制
var option = {
  xAxis: {
    type: 'value'
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    type: 'scatter',
    data: axisData
  }]
}

步骤4 调整配置项, 脱离0值比例

给 xAxis 和 yAxis 配置 scale 的值为 true

代码语言:javascript
复制
var option = {
  xAxis: {
    type: 'value',
    scale: true
  },
  yAxis: {
    type: 'value',
    scale: true
  },
  series: [{
    type: 'scatter',
    data: axisData,
  }]
}

最终的效果如下:

2.散点图的常见效果

气泡图效果

要能够达到气泡图的效果, 其实就是让每一个散点的大小不同, 让每一个散点的颜色不同

symbolSize 控制散点的大小

itemStyle.color 控制散点的颜色

这两个配置项都支持固定值的写法, 也支持回调函数的写法

固定值的写法如下:

代码语言:javascript
复制
var option = {
  series: [{
    type: 'scatter',
    data: axisData,
    symbolSize: 25,
    itemStyle: {
      color: 'green',
    }
  }]
}

代码语言:javascript
复制
var option = {
  series: [{
    type: 'scatter',
    data: axisData,
    symbolSize: function (arg) {
      var weight = arg[1]
      var height = arg[0] / 100 
      // BMI > 28 则代表肥胖, 肥胖的人用大的散点标识, 正常的人用小散点标识 
      // BMI: 体重/ 身高*身高 kg m
      var bmi = weight / (height * height) if (bmi > 28) {
        return 20
      }
      return 5
    },
    itemStyle: {
      color: function (arg) {
        var weight = arg.data[1]
        var height = arg.data[0] / 100
        var bmi = weight / (height * height) if (bmi > 28) {
          return 'red'
        }
        return 'green'
      }
    }
  }]
}

涟漪动画效果

type:effectScatte

将 type 的值从 scatter 设置为 effectScatter 就能够产生涟漪动画的效果

rippleEffect

rippleEffect 可以配置涟漪动画的大小

代码语言:javascript
复制
var option = {
  series: [{
    type: 'effectScatter',
    rippleEffect: {
      scale: 3
    }
  }]
}

showEffectOn

showEffectOn 可以控制涟漪动画在什么时候产生, 它的可选值有两个: render 和 emphasis

render 代表界面渲染完成就开始涟漪动画

emphasis 代表鼠标移过某个散点的时候, 该散点开始涟漪动画

代码语言:javascript
复制
var option = {
  series: [{
    type: 'effectScatter',
    showEffectOn: 'emphasis',
    rippleEffect: {
      scale: 3
    }
  }]
}

结合地图

散点图也经常结合地图来进行地图区域的标注, 这个效果将在讲解地图时实现

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档