vue Echarts实现仪表盘案例

本文实例为大家分享了vue Echarts实现仪表盘案例的具体代码,供大家参考,具体内容如下

1、main.js 页面

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import echarts from "echarts";
    
    Vue.config.productionTip = false;
    Vue.prototype.$echarts = echarts;
    new Vue({
      router,
      store,
      render: h => h(App)
    }).$mount('#app')

2、Guage.vue页面

<template>
  <div>
    <div id="gauge" style="width:800px;height:500px;"></div>
  </div>
</template>

<script>
export default {
  mounted() {
    this.SetGaugeEchart();
  },
  methods: {
    SetGaugeEchart() {
      let myChart = this.$echarts.init(document.getElementById("gauge"));
      var option = {
        tooltip: {
          // a 系列名称  b  数据项名称  c  数值
          formatter: "{a} <br/>{c} {b}"
        },
        toolbox: {
          show: true,
          feature: {
            restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        series: [
          {
            name: "速度",
            type: "gauge",
            // 定义居于上层,否则会被覆盖
            z: 3,
            min: 0,
            max: 220,
            // 分成多少等份
            splitNumber: 11,
            // 半径
            radius: "50%",
            axisLine: {
              // 坐标轴线
              lineStyle: {
                // 属性lineStyle控制线条样式
                width: 10
              }
            },
            axisTick: {
              // 坐标轴小标记
              length: 15, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle控制线条样式
                color: "auto"
              }
            },
            splitLine: {
              // 分隔线
              length: 20, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle(详见lineStyle)控制线条样式
                color: "auto"
              }
            },
            // 仪表盘内刻度提示显示样式
            axisLabel: {
              backgroundColor: "auto",
              borderRadius: 2,
              color: "#eee",
              padding: 3,
              textShadowBlur: 2,
              textShadowOffsetX: 1,
              textShadowOffsetY: 1,
              textShadowColor: "#222"
            },
            // 仪表盘内 单位 样式 km/h
            title: {
              // 其余属性默认使用全局文本样式,详见TEXTSTYLE
              fontWeight: "bolder",
              fontSize: 20,
              // 文字倾斜样式
              fontStyle: "italic"
            },
            //
            detail: {
              // 其余属性默认使用全局文本样式,详见TEXTSTYLE
              // 设置内容提示格式
              formatter: function(value) {
                value = (value + "").split(".");
                value.length < 2 && value.push("00");
                return (
                  ("00" + value[0]).slice(-2) +
                  "." +
                  (value[1] + "00").slice(0, 2)
                );
              },
              // 内容文字粗细
              fontWeight: "bolder",
              // 内容盒子边框圆角
              // borderRadius: 3,
              // 内容盒子背景色
              // backgroundColor: '#444',
              // 内容盒子颜色
              // borderColor: '#aaa',
              // 阴影
              // shadowBlur: 5,
              // shadowColor: '#333',
              // shadowOffsetX: 0,
              // shadowOffsetY: 3,
              // 边框
              // borderWidth: 2,
              // 文字
              // textBorderColor: '#000',
              // textBorderWidth: 2,
              // textShadowBlur: 2,
              // textShadowColor: '#fff',
              // textShadowOffsetX: 0,
              // textShadowOffsetY: 0,
              fontFamily: "Arial",
              width: 100,
              // color: '#eee',
              rich: {}
            },
            // 当前的 值 和 单位
            data: [{ value: 40, name: "km/h" }]
          },
          {
            name: "转速",
            type: "gauge",
            // 圆心位置
            center: ["20%", "55%"], // 默认全局居中
            radius: "35%", // 圆半径
            min: 0,
            max: 7,
            // 结束角度
            endAngle: 45,
            // 分成多少等份
            splitNumber: 7,
            axisLine: {
              // 坐标轴线
              lineStyle: {
                // 属性lineStyle控制线条样式
                width: 8
              }
            },
            axisTick: {
              // 坐标轴小标记
              length: 12, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle控制线条样式
                color: "auto"
              }
            },
            splitLine: {
              // 分隔线
              length: 20, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle(详见lineStyle)控制线条样式
                color: "auto"
              }
            },
            // 指针
            pointer: {
              width: 5
            },
            title: {
              // 位置
              offsetCenter: [0, "-30%"] // x, y,单位px
            },
            detail: {
              // 其余属性默认使用全局文本样式,详见TEXTSTYLE
              fontWeight: "bolder"
            },
            data: [{ value: 1.5, name: "x1000 r/min" }]
          },
          {
            name: "油表",
            type: "gauge",
            // 圆心
            center: ["77%", "50%"], // 默认全局居中
            // 半径
            radius: "25%",
            min: 0,
            max: 2,
            // 开始角度
            startAngle: 135,
            // 结束角度
            endAngle: 45,
            // 分几等份
            splitNumber: 2,
            axisLine: {
              // 坐标轴线
              lineStyle: {
                // 属性lineStyle控制线条样式
                width: 8
              }
            },
            axisTick: {
              // 坐标轴小标记
              splitNumber: 5,
              length: 10, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle控制线条样式
                color: "auto"
              }
            },
            // 设置内容提示格式
            axisLabel: {
              formatter: function(v) {
                switch (v + "") {
                  case "0":
                    return "E";
                  case "1":
                    return "Gas";
                  case "2":
                    return "F";
                }
              }
            },
            splitLine: {
              // 分隔线
              length: 15, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle(详见lineStyle)控制线条样式
                color: "auto"
              }
            },
            pointer: {
              width: 2
            },
            title: {
              show: false
            },
            detail: {
              show: false
            },
            data: [{ value: 0.5, name: "gas" }]
          },
          {
            name: "水表",
            type: "gauge",
            center: ["77%", "50%"], // 默认全局居中
            radius: "25%",
            min: 0,
            max: 2,
            startAngle: 315,
            endAngle: 225,
            splitNumber: 2,
            axisLine: {
              // 坐标轴线
              lineStyle: {
                // 属性lineStyle控制线条样式
                width: 8
              }
            },
            axisTick: {
              // 坐标轴小标记
              show: false
            },
            axisLabel: {
              formatter: function(v) {
                switch (v + "") {
                  case "0":
                    return "H";
                  case "1":
                    return "Water";
                  case "2":
                    return "C";
                }
              }
            },
            splitLine: {
              // 分隔线
              length: 15, // 属性length控制线长
              lineStyle: {
                // 属性lineStyle(详见lineStyle)控制线条样式
                color: "auto"
              }
            },
            pointer: {
              width: 2
            },
            title: {
              show: false
            },
            detail: {
              show: false
            },
            data: [{ value: 0.5, name: "gas" }]
          }
        ]
      };

      setInterval(function() {
        option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
        option.series[1].data[0].value = (Math.random() * 7).toFixed(2) - 0;
        option.series[2].data[0].value = (Math.random() * 2).toFixed(2) - 0;
        option.series[3].data[0].value = (Math.random() * 2).toFixed(2) - 0;
        myChart.setOption(option, true);
      }, 2000);
    }
  }
};
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue中使用Echarts仪表盘展示实时数据的实现

    在vue中echarts仪表盘实时数据 彩笔一枚,简单记录一下. 业务场景:通过websocket实时推送数据,将数据渲染到仪表盘中. 第一步: 基于准备好的dom,初始化echarts仪表盘实例. 第二步: 我是通过父子组件传值把数据接收过来,在data中定义upPressure参数,并将接收来的devicePressure参数赋值给它,便于后面将值传入到echarts中 父组件中 <div class="chart" shadow="always">

  • vue实现echarts中的仪表盘

    本文实例为大家分享了vue实现echarts中的仪表盘的具体代码,供大家参考,具体内容如下 最终结果 一.安装 1. 首先需要安装echarts依赖包 npm install echarts -S 2. 或者使用国内的淘宝镜像: npm install -g cnpm --registry=https://registry.npm.taobao.org 二.创建图表 全局引入 main.js // 引入echarts import echarts from 'echarts' Vue.proto

  • vue-cli3+echarts实现渐变色仪表盘组件封装

    本文实例为大家分享了vue-cli3+echarts 实现封装一个渐变色仪表盘组件,供大家参考,具体内容如下 效果预览 思路 1.使用两个仪表盘叠加,起始角度一样,底部仪表盘结束角度固定不变2.通过props传入数据3.计算在上层的仪表盘的结束角度并赋值 代码 <template>   <div class="gauge">     <div class="gauge__bottom" ref="bottomGauge&quo

  • Vue使用echarts定制特殊的仪表盘

    本文实例为大家分享了Vue使用echarts定制特殊仪表盘的具体代码,供大家参考,具体内容如下 实现的效果:(初始化以及浏览器resize的时候数字和弧形条均为递增动画) HTML部分: <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div class="main-echarts-contianer"      ref="main"> </div> CSS部分: .main-echarts-contiane

  • vue使用highcharts自定义仪表盘图表

    使用highchart图表框架实现一个自定义的类似下图的图表,供大家参考,具体内容如下 1. 原理 实际上就是4个饼图叠起来(可以这么理解),中间一个完整的圆和三个大小不一的圆圈 2. 技术点 使用的是highchart中的Highstock 图表类型是solidgauge 因为饼图不支持阴影效果(可能是我没找到),所以上图中带的一点类似阴影的效果,看起来有一点点立体的感觉用的是径向渐变属性来实现的 其中用到了图表的时间属性:鼠标移出和移入事件 数据标签字符串格式化函数 3. 实现 因为使用的是

  • vue Echarts实现仪表盘案例

    本文实例为大家分享了vue Echarts实现仪表盘案例的具体代码,供大家参考,具体内容如下 1.main.js 页面 import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' import echarts from "echarts";          Vue.config.productionTip = false;   

  • vue Echarts实现仪表盘案例

    本文实例为大家分享了vue Echarts实现仪表盘案例的具体代码,供大家参考,具体内容如下 1.main.js 页面 import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' import echarts from "echarts";          Vue.config.productionTip = false;   

  • vue echarts实现航班选座案例分析

    目录 背景 实现思路 代码分析 获取svg 注册自定义地图 geo组件的配置 举一反三 三 效果图 注意点 背景 最近在echarts官方看到了一个航班选座的示例,感觉很好,可以扩大,缩小,鼠标放置到座位上可以显示座位号,允许默认选中座位.于是在5.1假期抽了一点点时间,来写一篇文章,深入研究分析一下这个示例,解析一下这个示例的完整代码.首先让我们来看下示例的效果图. 实现思路 代码是使用echarts来实现的,主要用到的是svg和自定义地图的相关知识.示例的完整代码 在做选座的功能,我们使用d

  • Vue Echarts简易实现仪表盘

    目录 前言 仪表盘的特点 仪表盘的基本实现 仪表盘的常见效果 前言 本篇来学习写仪表盘图 仪表盘的特点 可以更直观的表现出某个指标的进度或实际情况 仪表盘的基本实现 ECharts 最基本的代码结构 准备数据, 设置给 series 下的 data 在 series 下设置 type:gauge <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

  • JS库中的Particles.js在vue上的运用案例分析

    知乎的首页后面的粒子动效总觉得很炫酷,搜了一下,发现是用particles.js编写的.刚好目前的项目是利用vue框架的,两个凑在一起学了. 讲道理,这个用得好的话,页面是可以很酷的,譬如我现在写的项目 酷酷的登录页 嘻嘻~ 安装particles.js npm install --save particles.js 配置particles.js 1.data 这个data是用于控制粒子在页面中所呈现的状态. { "particles": { "number": {

  • Vue Echarts实现可视化世界地图代码实例

    Echarts实现可视化世界地图模拟迁徙,以我自己开发过程. 下载Echarts依赖: npm install echarts 成功以后引入依赖: import echarts from 'echarts' peopleInsertCharts为生成echarts容器. let myChart = echarts.init(document.getElementById('peopleInsertCharts')) 容器一定要给宽高,否则echarts生成初始化页面不会显示.需要自适应的可以js

  • vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)

    本篇文档主要是利用echarts实现可拖动节点的折线图,在echarts中找到了一个demo,传送门:https://echarts.baidu.com/examples/editor.html?c=line-draggable,但是不是用vue写的,并且在改写为vue组件的过程中遇到了很多问题,在百度过程中发现并没有相关的文档,所以决定自己开发,并在demo的基础上开发了一些实用的功能,所以把这个过程记录下来.文档中还有很多不够完善的地方,欢迎讨论哈! 需求:制作一个折线图用于显示当前24小时

  • vue实现购物车小案例

    本文实例为大家分享了vue实现购物车小案例的具体代码,供大家参考,具体内容如下 最终效果 HTML部分: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>shopcar.html</title> <script src="https://cdn.jsdelivr.net/npm/vue&q

  • vue+echarts实现动态绘制图表及异步加载数据的方法

    前言 背景:vue写的后台管理,需要将表格数据绘制成图表(折线图,柱状图),图表数据都是通过接口请求回来的. 安装 cnpm install echarts --s   (我这里用了淘宝镜像,不知道同学自行百度) 实例化   在已有的项目中下载好了echarts 之后,可以打开官方文档,但是我觉得官方文档对于实例化介绍的不够清晰,这也是我为什么在这么多的文章中还要写的原因,前辈写的太模糊了,我决定好好给后来人,需要在项目中引用图表的人,一些实用,快捷的东西. 官方文档:http://echart

  • 解决Vue + Echarts 使用markLine标线(precision精度问题)

    在VUE实例中使用Echarts 安装echarts依赖: npm install echarts -s 编写代码: 引入echarts对象: 鉴于准备工作中已经通过npm安装了echarts依赖,所以可以直接在vue文件中使用代码import echarts from "echarts"引入echarts对象: <script> import echarts from 'echarts/lib/echarts' </script> 注意:只引入了echarts

随机推荐