Appearance
Echarts 的基本使用
- 引入js
- 准备呈现的div
- 初始化
- 准备配置项
- 将配置项配置给echarts对象
Echarts 常用图表
- 柱状图
- 折线图
- 散点图
- 饼图
- 地图
- 雷达图
- 仪表盘图
通用配置
指任何一类的图标都可以使用的配置
标题 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
矢量地图
快速实现
- 准备中国地图矢量数据
- 使用 ajax 获取矢量地图数据
- 在 ajax 回调函数中注册中国地图矢量数据 echarts.registerMap('chinaMap',矢量地图数据)
- 配置 geo 的type 为 'map' , map 属性为 'chinaMap'
javascriptconst 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) } })
常见效果
显示某个区域
- 加载改区域的矢量地图数据
- 通过registerMap注册到echarts全局对象中
- 致命geo配置下的type和name属性
- 通过zoom放大该区域
- 通过center定位中心点
不同地区显示不同颜色
- 显示基本的地图
- 将空气质量的数据设置给series
- 将series的数据和geo关联
- 配置visualMap
地图和散点图结合
- 给series下增加新的对象
- 准备好散点的数据,设置给新对象data
- 配置新对象的type type:effectScatter
- 让散点图使用地图坐标系统 coordinateSystem:'geo
- 让涟漪效果更加明显 rippleEffect:{ scale:10 }
主要用于从宏观角都快速看出不同地理位置上数据的差异.
雷达图
定义各个维度的最大值 indicator:[{name:'xxx',max:100},] 准备数据 data:[{name:'xxx',value:[80,90,90,]}]
可以用于多个维度与标准数据的对比
仪表盘
主要用在进度把控以及数据范围的监测
WebSocket 的使用
- 后端
- 安装包 npm i ws -S
- 创建对象
``` javascript
const WebSocket = require('ws')
const wss = new WebSocket.Server({
port:9998
})
```
监听事件
- 连接事件javascript
wss.on('connection',client=>{ console.log('有客户端连接') })
- 接收数据事件
javascriptwss.on('connection',client=>{ client.on('message', msg =>{ console.log('客户端发数据过来了') }) }) ``
- 连接事件
发送数据 client.send('hello')
前端
- 创建对象 const ws = new WebScoket('ws//localhost:9998') WebScoket 是windows 对象默认提供的,因此不需要额外的包
- 监听事件
- 连接成功事件 ws.onopen
- 接收数据事件 ws.onmessage
- 关闭连接事件 ws.onclose
- 发送数据 ws.send
注意
为了监听vuex的变化,可以配合使用计算属性
javascript
computed:{
theme(){
return this.$store.state.theme
}
},
watch:{
theme(){
console.log('监听到vuex属性的改变拉~')
}
}