Skip to content

Echarts 的基本使用

  1. 引入js
  2. 准备呈现的div
  3. 初始化
  4. 准备配置项
  5. 将配置项配置给echarts对象

Echarts 常用图表

  1. 柱状图
  2. 折线图
  3. 散点图
  4. 饼图
  5. 地图
  6. 雷达图
  7. 仪表盘图

通用配置

指任何一类的图标都可以使用的配置

标题 title 提示 tooltip 工具按钮 toolbox 图例 legend

legend 用于筛选图例,需要和series配合使用 legend 中 data 是一个数组 , 需要和series数组中某组数据的name值一致

柱状图

  • 实现步骤

    • Echarts 最基本的代码结构

    • X轴数据

      • 数组1:['张三','李四','王五','闰土','小明','小红','小刚']
    • y轴数据

      • 数组2:[88,92,63,77,94,80,72]
  • 柱状图的特点

    • 描述的是分类数据,呈现的是每一个分中,有多少,通过柱状图,可以很清晰的看出每个分类数据的排名情况

折线图

折线图更多的使用来呈现数据随时间的『变化趋势』

散点图

可以帮助我们推断出不同维度数据之间的相关性 通常也会结合地图在地图上的标注

有x和y轴的图标,一般称为 直角坐标系图表

通常有 柱状图 折线图 散点图 有通用的常用配置 网格 grid 控制直角坐标系的布局和大小 坐标轴 axis 区域缩放 dataZoom

饼图

饼图的数据结构 需要是 {name:'xx',value:123} series 中设置type 为 pie

  • 常见效果 先问文字的格式化 圆环 南丁格尔图 选中效果 通常用于不同分类数据的占比

地图

  • 地图的使用方式 百度地图 API

  • 矢量地图

  • 快速实现

    1. 准备中国地图矢量数据
    2. 使用 ajax 获取矢量地图数据
    3. 在 ajax 回调函数中注册中国地图矢量数据 echarts.registerMap('chinaMap',矢量地图数据)
    4. 配置 geo 的type 为 'map' , map 属性为 'chinaMap'
    javascript
      const mCharts = echarts.init(document.querySelector('div'))
    
      $.ajax({
        url: 'template/json/china.json',
        method: 'GET',
        success: function (res) {
          console.log(res);
          echarts.registerMap('chinaMap', res)
    
          const option = {
            geo: {
              type: 'map',
              map: 'chinaMap',
              roam: true, // 设置可以缩放地图和拖动
    
              label: {
                show: true, // 默认展示标签
              },
    
              // 初始化的时候缩放比例
              zoom: 20,
              // 配置中心点 经纬度
              center: [116, 40]
            }
          }
    
          mCharts.setOption(option)
        }
      })
  • 常见效果

    • 显示某个区域

      1. 加载改区域的矢量地图数据
      2. 通过registerMap注册到echarts全局对象中
      3. 致命geo配置下的type和name属性
      4. 通过zoom放大该区域
      5. 通过center定位中心点
    • 不同地区显示不同颜色

      1. 显示基本的地图
      2. 将空气质量的数据设置给series
      3. 将series的数据和geo关联
      4. 配置visualMap
    • 地图和散点图结合

      1. 给series下增加新的对象
      2. 准备好散点的数据,设置给新对象data
      3. 配置新对象的type type:effectScatter
      4. 让散点图使用地图坐标系统 coordinateSystem:'geo
      5. 让涟漪效果更加明显 rippleEffect:{ scale:10 }

主要用于从宏观角都快速看出不同地理位置上数据的差异.

雷达图

定义各个维度的最大值 indicator:[{name:'xxx',max:100},] 准备数据 data:[{name:'xxx',value:[80,90,90,]}]

可以用于多个维度与标准数据的对比

仪表盘

主要用在进度把控以及数据范围的监测

WebSocket 的使用

  1. 后端
  2. 安装包 npm i ws -S
  3. 创建对象
``` javascript
const WebSocket = require('ws')
const wss = new WebSocket.Server({
  port:9998
})
```
  1. 监听事件

    1. 连接事件
      javascript
        wss.on('connection',client=>{
          console.log('有客户端连接')
        })
    2. 接收数据事件
    javascript
      wss.on('connection',client=>{
        client.on('message', msg =>{
          console.log('客户端发数据过来了')
        })
      })
    ``
  2. 发送数据 client.send('hello')

  3. 前端

    1. 创建对象 const ws = new WebScoket('ws//localhost:9998') WebScoket 是windows 对象默认提供的,因此不需要额外的包
    2. 监听事件
      1. 连接成功事件 ws.onopen
      2. 接收数据事件 ws.onmessage
      3. 关闭连接事件 ws.onclose
    3. 发送数据 ws.send

注意

为了监听vuex的变化,可以配合使用计算属性

javascript
  computed:{
    theme(){
      return this.$store.state.theme
    }
  },
  watch:{
    theme(){
      console.log('监听到vuex属性的改变拉~')
    }
  }