大屏监控的

Echarts的使用

1、引入echarts文件,vue中直接可以下载引入(npm i echarts --s)

2、echarts初始化

//在main.js中
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
绘制图表
myChart.setOption(option);
// 折线图设置
 option={
     // title是标题组件,包含主标题和副标题   legend    图例组件
        tooltip: {
           //tooltip提示框组件
          //trigger 触发类型 item:数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
         //axis:坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
          trigger: 'axis',
          axisPointer: {
              //坐标轴指示器配置项 type指示器类型  'cross' 十字准星指示器
            type: 'cross',
            //坐标轴指示器的文本标签   样式设置
            label: {
              backgroundColor: '#6a7985'
            }
          },
          textStyle: {
            //  提示框浮层的文本样式
            fontSize: '30'
          }
        },
        grid: {
            //直角坐标系在容器中的位置   containLabel:grid 区域是否包含坐标轴的刻度标签
          left: '1.25%',
          right: '1.25%',
          bottom: '25%',
          containLabel: true
        },
        xAxis: [
            //x轴设置
          {
            type: 'category',  //坐标轴类型
            boundaryGap: true,//坐标轴两边留白策略
            data: ['2019-04-08', '2019-04-09', '2019-04-10', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08', '2019-04-08'], //坐标轴类型
            axisLine: { //坐标轴轴线相关设置
              show: false
            },
            axisTick: { //坐标轴刻度相关设置  interval:坐标刻度间隔  inside:坐标刻度朝向
              show: false
            },
            axisLabel: {  //坐标轴刻度标签的相关设置   interval:坐标刻度标签间隔  inside:坐标刻度标签朝向   样式设置
              fontFamily: 'HYQiHei-EES',
              //  20px
              fontSize: '24',
              color: '#485157',
              align: 'center',
              interval: 1,
              margin: 45,
              rotate: -25
            },
            splitLine: {  //坐标轴在 grid 区域中的分隔线
              show: true,
              lineStyle: { color: 'rgba(80,243,237,0.1)' } //分隔线颜色
            },
            splitArea: { show: false } //坐标轴在 grid 区域中的分隔区域
          }
        ],
        yAxis: [
          {
            type: 'value',
            axisLine: {
              show: false
            },
            axisTick: {
              show: false
            },
            axisLabel: {
              fontFamily: 'HYQiHei-EES',
              //  20px
              fontSize: '24',
              color: '#485157',
              align: 'center',
              inside: true
            },
            splitLine: { show: false },
            splitArea: { show: false }
          }
        ],
        series: [
          {
            //  系列数据  symbol: 图标
            name: '累计节油(L)',
            type: 'line',
            symbol: 'image://img/save_petrol@3x.png',
            symbolSize: [21, 33],
            showSymbol: false,
            itemStyle: { //折线拐点标志的样式
              color: 'rgba(0,122,255,0.3)'
            },
            lineStyle: { color: 'rgba(0,122,255,1)' }, //线条样式
            stack: '总量',
            areaStyle: {},
            data: [0.32, 0.23, 0.4, 0.5, 0.46, 0.6, 0.35, 0.45, 0.35, 0.55, 0.35, 0.55, 0.6,0.32, 0.23, 0.4, 0.5, 0.46, 0.6, 0.35, 0.45, 0.35, 0.55, 0.35, 0.55, 0.6, 0.35, 0.45,0.35, 0.45,]
            //data: oil
          },
          {
            name: '累计减排(Kg)',
            type: 'line',
            symbol: 'image://img/reduce_exhuast@3x.png',
            symbolSize: [21, 33],
            showSymbol: false,
            itemStyle: {
              color: 'rgba(10,234,212,0.2)'
            },
            lineStyle: { color: 'rgba(10,234,212,1)' },
            stack: '总量',
            areaStyle: { normal: {} },
            // data: [0.12, 0.23, 0.2, 0.32, 0.5, 0.5, 0.25, 0.35, 0.15, 0.35, 0.15, 0.35, 0.5,0.32, 0.23, 0.4, 0.5, 0.46, 0.6, 0.35, 0.45, 0.35, 0.55, 0.35, 0.55, 0.6, 0.35, 0.45,0.35, 0.45,]
            data: cumulative
          }
        ]
      }


 // 饼图设置
    option={
        tooltip: {
          show: false
        },
        toolbox: {
          show: false
        },
        // color : ['#3dd4de','#b697cd','#a6f08f'],
        backgroundColor: 'transparent',
        series: [{
          name: 'Pie1',
          type: 'pie',
          clockWise: false,
          radius: ['75%', '98%'], //设置饼图 内外半径
          itemStyle: {
            normal: {
                  label: {
                    show: false
                  },
                  labelLine: {
                    show: false
                  },
                  shadowBlur: 40,
                  shadowColor: 'rgba(40, 40, 40, 0.5)'
            }
      },
          hoverAnimation: false,
          center: ['50%', '50%'], 
          data: [{
            value: data1,  // 要显示的数据
            label: { //单个扇区的标签配置
              normal: {
                formatter: '{d}%',  //文本的显示的内容
                position: 'center',
                show: true,
                textStyle: {
                  //样式
                  fontSize: '114',
                  fontFamily: 'HYQiHei-GES',
                  fontWeight: 'normal',
                  color: '#fff'
                }
              }
            },
            itemStyle: { //图形样式
              normal: {
                color: color
                // shadowColor: color,
                // shadowBlur: 4
              }
            }
          },
          {
            value: remaining,  // 剩下占比 的显示
            name: 'invisible',
            itemStyle:  {
                normal: {
                  color: 'rgba(148,170,186,.6)', // 未完成的圆环的颜色
                  label: {
                    show: false
                  },
                  labelLine: {
                    show: false
                  }
                },
                emphasis: {  // 高亮样式
                  // color: 'rgba(44,59,70,.3)' // 未完成的圆环的颜色
                }
              }
                  }]
                }]
      }
    
ecahrts引入中国地图

优点:只绘制中国地图,设置每个区块的颜色,提供经纬度可以在图上设置图标

缺点:放大并不能像图吧和百度地图自动缩放到市、县、镇等。不能获取地图的经纬度位置,不能使用到地图的api

  1. 引入中国地图数据 china.js

  2. 设置options 的配置 设置地理坐标系组件 geo

     
    
    
    myChart.setOption({
            tooltip: {
              show: false
            },
            geo: {
              map: 'china',
              roam: true,  //是否开启鼠标缩放和平移漫游
              label: {
                position: ['50%', '50%'],
                normal: {
                  show: true,
                  textStyle: {
                    color: '#485157',
                    fontSize: '30'
                  }
                }
              },
              itemStyle: {
                normal: {
                  borderColor: 'rgba(0, 0, 0, 1)' //设置边界线
                },
                emphasis: {
                  areaColor: 'rgba(35,193,227,0.6)',
                  shadowOffsetX: 0,
                  shadowOffsetY: 0,
                  shadowBlur: 20,
                  borderWidth: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              },
              'data': data  
            },
            series: [
              // { 自己设置图标
              //   type: 'scatter',  
              //   coordinateSystem: 'geo',
              //   data: this.cityNumber,
              // data: cityNumber,
              //   symbolSize: (value, params) => {
              //     if (value[2] > 0 && value[2] <= 10) {
              //       params.symbolSize = [52, 52]
              //     } else if (value[2] > 10 && value[2] <= 100) {
              //       params.symbolSize = [62, 62]
              //     } else if (value[2] > 100 && value[2] <= 1000) {
              //       params.symbolSize = [79, 79]
              //     } else if (value[2] > 1000 && value[2] <= 10000) {
              //       params.symbolSize = [89, 89]
              //     } else if (value[2] > 10000) {
              //       params.symbolSize = [114, 114]
              //     }
              //     return params.symbolSize
              //   },
              //   symbol: 'image://http://localhost:8080/img/52_09.png',
              //   label: {
              //     normal: {
              //       formatter: '{@[2]}',
              //       position: 'inside',
              //       show: true,
              //       color: '#fff',
              //       fontSize: '14'
              //     },
              //     emphasis: {
              //       show: true
              //     }
              //   }
              // },
              { //组件提供的涟漪  有动态效果
                type: 'effectScatter',
                coordinateSystem: 'geo',
                data: this.cityNumber,  //图上标注的数据
                symbolSize: (value, params) => {
                  if (value[2] > 0 && value[2] <= 10) {
                    params.symbolSize = [60, 60]
                  } else if (value[2] > 10 && value[2] <= 100) {
                    params.symbolSize = [66, 66]
                  } else if (value[2] > 100 && value[2] <= 1000) {
                    params.symbolSize = [72, 72]
                  } else if (value[2] > 1000 && value[2] <= 10000) {
                    params.symbolSize = [90, 90]
                  } else if (value[2] > 10000) {
                    params.symbolSize = [120, 120]
                  }
                  return params.symbolSize
                },
                showEffectOn: 'render',   //配置何时显示特效  render 绘制完就显示
                rippleEffect: {  //涟漪特效相关配置  动画  缩放大小  
                  brushType: 'fill'  //波纹的绘制方式 "stroke"  'fill'
                },
                hoverAnimation: true, //是否开启鼠标 hover 的提示动画效果
                label: {
                  normal: {
                    formatter: '{@[2]}',  //文本显示设置
                    position: 'inside',
                    show: true,
                    color: '#fff',
                    fontSize: '24'
                  },
                  emphasis: {
                    show: true
                  }
                },
                itemStyle: {
                  normal: {
                    // color: '#008cff',
                    color: 'rgba(35,193,227,1)'
                    // shadowBlur: 10,
                    // shadowColor: '#333'
                  }
                }
              },
              {
                name: '中国',
                type: 'map',
                geoIndex: 0,
                'mapType': 'china',
                data: data //地图的数据 对应颜色
                // tooltip: {show: false},
              }
            ]
          })
    
    百度地图

​ 优点:可以和echarts一起使用调底色,提供API,可以获取地理位置和在地图上做标记。

​ 缺点:只能设置底色,但显示区域、放大比例不好调整(不会只显示中国地图,包含边界其他的城市、海,显示效果不好、突兀)

使用:

  1. 申请密钥,百度地图使用一个专门的密钥(ak)作为路径

在vue框架,的index.html中引入

<body>
<div id="app"></div>
<!--引入百度地图API-->
<script src='http://api.map.baidu.com/api?v=2.0&ak=?&callback=init'></script>
</body>

2、在使用的vue页面中的myChart.setOption({option})

// 引入bmap.js
import '../../../node_modules/echarts/extension/bmap/bmap.js'
// options中设置bmap 
 bmap: {
        center: [105.65,37.76],
        zoom: 7,
        roam: true,
        mapStyle: {
		styleJson: [{}]}
 }
图吧地图

优点:提供API,可以获取地理位置和在地图上做标记。有后台端口匹配的数据

缺点:样式不能修改,显示很突兀

大屏总结

投放在大屏并不是将页面分辨率直接投放,它只能显示电脑屏幕显示的内容,再将其内容放大,但电脑分辨率和大屏分辨率比例不一致,很容易导致图案变形。

在修改大屏样式是将页面设置为浏览器的100%,再通过百分百进行布局,同时保证大屏图案比例显示正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值