Echarts+layui+jq数据可视化大屏展示
Echarts结合vue
1 | npm install echarts |
Echarts结合layui
(1)下载layui echarts
(2)可以直接script标签引入,也可以用layui的模块化方案引入(如果要使用地图.js直接script标签引入更直接),修改echarts.js 添加
window.layui && layui.define ? layui.define(function(exports){exports(‘echarts’,factory(exports))}) :
1 | (function (global, factory) { |
layui的模块化方案
layui可以自定义一个模块并引入
1 | /** |
Echarts其实就是堆配置项,官方文档的实例也可以复制修改,并没有什么特殊的,只是说大屏的自适应来说echarts在某些特定情况下需要用一些特殊的手段。
在layui的框架下基于jq开发的大屏项目使用的是iframe标签将图表引入,布局使用的是百分比+rem+flex布局.(iframe不建议使用但是我就是用了)
Echarts需要实现自适应大小需要在窗口变化的时候resize
1 | // 图像自适应 |
除此之外echarts的字体也需要变化因为默认的是px所以需要在窗口变化的时候讲字体也变小
1 | //和rem原理差不多同样是借助了html的根字体大小来改变因为使用的是iframe所以图表都是自己在一个html |
Echarts引入地图
有两种引入方式JavaScript 引入示例
1 | <script src="echarts.js"></script> |
JSON 引入示例(ECharts 使用 geoJSON 格式的数据作为地图的轮廓,除了上述数据,你也可以通过其它手段获取地图的 geoJSON 数据注册到 ECharts 中,在其他geoJSON工具中画好地图生成json引入也可以生成地图)
1 | $.get('map/json/china.json', function (chinaJson) { |
我的项目是以JavaScript方式引入地图首先为了方便操作先获取地图的各省份经纬度
1 | var geoCoordMap = {}; |
基本思路是将请求回来的数据进行处理 再以省份获取对应地图省份的经纬度从而改变数据 在set一遍 让其重绘
1 | //以省份名字去查询对应经纬度 返回一个数组可以直接替换 series(系列里的)data |
上述地图option
1 | var option = { |
有时候图表会需要一个长链接来更新数据那么就需要利用WebSocket
1 | var socket; |