首页 > 其他分享 >【Echarts 实战指南】仪表盘接收动态数据,小白轻松上手

【Echarts 实战指南】仪表盘接收动态数据,小白轻松上手

时间:2024-10-17 16:46:29浏览次数:3  
标签:case false show color value return 仪表盘 动态数据 Echarts

ECharts 仪表盘因其强大的数据可视化功能而被广泛应用于多种场景。性能监控、生产监控、设备监控等等
在这里插入图片描述

template

<template>
    <a-card shadow="none" style="margin:20px 0 0 20px" title="">
     	<div class="item" ref="chartContainer8"></div>
    </a-card>
</template>

script

<script setup>
	import * as echarts from 'echarts'
	import { ref, onMounted, onUnmounted } from 'vue'
	let chartContainer8 = ref(null)
	function gaugeCharts() {
	    const dataArr = ref(Math.floor(Math.random() * 81) + 20);
	    const chart = echarts.init(chartContainer8.value);
	    const options = {
	        series: [
	            {
	                name: "最外部进度条",
	                type: "gauge",
	                radius: "80%",
	                splitNumber: 100,
	                axisLine: {
	                    lineStyle: {
	                        color: [[1, "#33507A"]],
	                        width: 10,
	                        shadowColor: "rgba(145,207,255,.5)",
	                        shadowBlur: 6,
	                        shadowOffsetX: 0,
	                    },
	                },
	                axisLabel: {
	                    show: false,
	                },
	                axisTick: {
	                    show: false,
	                },
	                splitLine: {
	                    show: false,
	                },
	                itemStyle: {
	                    show: false,
	                },
	                detail: {
	                    show: false,
	                },
	                title: {
	                    //标题
	                    show: false,
	                },
	                data: [
	                    {
	                        name: "title",
	                        value: dataArr.value,
	                    },
	                ],
	                pointer: {
	                    show: false,
	                },
	                animationDuration: 1000,
	            },
	            {
	                name: "内部进度条",
	                type: "gauge",
	                // center: ['50%', '50%'],
	                radius: "64%",
	                z: 4,
	                splitNumber: 10,
	                axisLine: {
	                    lineStyle: {
	                        color: [
	                            [
	                                dataArr.value / 100,
	                                new echarts.graphic.LinearGradient(0, 1, 0, 0, [
	                                    {
	                                        offset: 0,
	                                        color: "rgba(0,191,194,.1)",
	                                    },
	                                    {
	                                        offset: 0.5,
	                                        color: "rgba(0,191,194,0.4)",
	                                    },
	                                    {
	                                        offset: 1,
	                                        color: "rgba(0,191,194,0.8)",
	                                    },
	                                ]),
	                            ],
	                            [1, "rgba(28,128,245,.0)"],
	                        ],
	                        width: 170,
	                    },
	                },
	                axisLabel: {
	                    show: false,
	                },
	                axisTick: {
	                    show: false,
	                },
	                splitLine: {
	                    show: false,
	                },
	                itemStyle: {
	                    show: false,
	                },
	                detail: {
	                    formatter: function (value) {
	                        if (value !== 0) {
	                            var num = Math.round(value);
	                            return parseInt(num).toFixed(0) + "℃";
	                        } else {
	                            return 0;
	                        }
	                    },
	                    offsetCenter: [0, 50],
	                    textStyle: {
	                        padding: [0, 0, 0, 0],
	                        fontSize: 18,
	                        fontWeight: "700",
	                        color: '#fff',
	                    },
	                },
	                title: {
	                    //标题
	                    show: false,
	                    offsetCenter: [0, 46], // x, y,单位px
	                    textStyle: {
	                        color: "rgba(46, 143, 255, 1)",
	                        fontSize: 30, //表盘上的标题文字大小
	                        fontWeight: 700,
	                        fontFamily: "PingFangSC",
	                    },
	                },
	                data: [
	                    {
	                        name: dataArr.value,
	                        value: dataArr.value,
	                    },
	                ],
	                itemStyle: {
	                    normal: {
	                        color: "rgba(46, 143, 255, 1)",
	                    },
	                },
	                pointer: {
	                    show: true,
	                    length: "80%",
	                    radius: "20%",
	                    width: 3, //指针粗细
	                },
	                animationDuration: 1000,
	            },
	            // 内圆
	            {
	                name: "内圆",
	                type: "pie",
	                hoverAnimation: false,
	                legendHoverLink: false,
	                radius: "14%",
	                z: 4,
	
	                labelLine: {
	                    normal: {
	                        show: false,
	                    },
	                },
	                data: [
	                    {
	                        value: 0,
	                    },
	                    {
	                        value: 10,
	
	                        itemStyle: {
	                            normal: {
	                                color: "#0C2F6F",
	                            },
	                            emphasis: {
	                                color: "#0C2F6F",
	                            },
	                        },
	                    },
	                ],
	            },
	            // 圆环
	            {
	                name: "小圆形",
	                type: "pie",
	                hoverAnimation: false,
	                legendHoverLink: false,
	                radius: ["4%", "3%"],
	                z: 5,
	                labelLine: {
	                    normal: {
	                        show: false,
	                    },
	                },
	                data: [
	                    {
	                        value: 0,
	                    },
	                    {
	                        value: 10,
	
	                        itemStyle: {
	                            normal: {
	                                color: "rgba(46, 143, 255, 1)",
	                            },
	                        },
	                    },
	                ],
	            },
	            {
	                name: "外部刻度",
	                type: "gauge",
	                //  center: ['20%', '50%'],
	                radius: "70%",
	                min: 0, //最小刻度
	                max: 100, //最大刻度
	                splitNumber: 10, //刻度数量
	                startAngle: 225,
	                endAngle: -45,
	                axisLine: {
	                    show: false,
	                    lineStyle: {
	                        width: 1,
	                        color: [[1, "rgba(0,0,0,0)"]],
	                    },
	                }, //仪表盘轴线
	                axisLabel: {
	                    show: true,
	                    color: "rgba(255,255,255,.5)",
	                    distance: 10,
	                    fontSize: 10,
	                    formatter: function (v) {
	                        switch (v + "") {
	                            case "0":
	                                return "0";
	                            case "10":
	                                return "10";
	                            case "20":
	                                return "20";
	                            case "30":
	                                return "30";
	                            case "40":
	                                return "40";
	                            case "50":
	                                return "50";
	                            case "60":
	                                return "60";
	                            case "70":
	                                return "70";
	                            case "80":
	                                return "80";
	                            case "90":
	                                return "90";
	                            case "100":
	                                return "100";
	                        }
	                    },
	                }, //刻度标签。
	                axisTick: {
	                    show: true,
	                    splitNumber: 7,
	                    lineStyle: {
	                        color: "#42E5FB", //用颜色渐变函数不起作用
	                        width: 2,
	                    },
	                    length: 8,
	                }, //刻度样式
	                splitLine: {
	                    show: true,
	                    length: 15,
	                    lineStyle: {
	                        color: "#42E5FB", //用颜色渐变函数不起作用
	                    },
	                }, //分隔线样式
	                detail: {
	                    show: false,
	                },
	                pointer: {
	                    show: true,
	                },
	            },
	        ],
	    }
	   	 chart.setOption(options);
	}
	onMounted(() => {
	     gaugeCharts()
	    intervalId = setInterval(gaugeCharts, 2000);
	});
	onUnmounted(() => {
	    if (intervalId) {
	        clearInterval(intervalId);
	    }
	});
</script>

在这里插入图片描述

标签:case,false,show,color,value,return,仪表盘,动态数据,Echarts
From: https://blog.csdn.net/weixin_52814911/article/details/143022985

相关文章

  • 采用黑白仪表盘风格提高清晰度-Stimulsoft Dashboards.JS 2024.4.1
    采用黑白仪表盘风格提高清晰度2024年10月16日StimulsoftDashboards.JS2024.4.1采用了时尚、现代的设计和一致的报告格式,并采用了新的单色预设主题。StimulsoftDashboards.JS是一个JavaScript库,旨在在Web应用程序中构建交互式仪表板。......
  • 【Echarts 实战指南】解锁动态历史曲线之谜
    在工作中,大家是否曾遇到过这样一种需求呢?需获取设备最近10分钟的历史数据。设备实时数据每2秒推送一次,且要把历史数据曲线变成动态变化的状态。倘若设备最近10分钟的历史数据为20个点,那么现在每2秒就要将最前面的点删除,同时推送最新的数据。一旦数据发生变化,便加......
  • vue3+h5+echarts引入折线图
     实现效果:1.引入echarts,在终端输入命令npminstallecharts--save2.安装成功后直接复制以下代码即可<template><divref="chartDom"class="echart"id="main"></div></template><scriptsetup>import{onMounted,......
  • ECharts关系图-悲惨世界人物关系图(环形布局),附视频讲解与代码下载
    引言: 关系图(或称网络图、关系网络图)在数据可视化中扮演着至关重要的角色。它们通过节点(代表实体,如人、物体、概念等)和边(代表实体之间的关系或连接)的形式,直观地展示了数据集中各元素之间的复杂关联。本文将详细介绍如何使用ECharts库实现一个关系图,包括图表效果预览、视频讲解......
  • Vue2+ECharts+Mock.js实现前端后台通用管理系统页面
    一、前言  在现代Web开发中,前端框架与数据可视化工具的结合能够显著提升用户体验。本文将介绍如何使用Vue2和ECharts构建一个通用的后台管理系统页面。利用Vue2的组件化特性,可以高效管理应用状态与UI交互,而ECharts则提供多样的图表类型,便于展示数据分析结果。通过整合这两......
  • echarts配置option
    折线渐变背景结合路径图实现动态效果letxData=['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];letyData=[150,132,134,230,210,290,310];option={tooltip:{trigger:'axis',......
  • ECharts图表图例6
    java用eclipse软件代码:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><!--引入ECharts脚本--><scriptsrc="js/echarts.js"></script><title>Inserttitlehere</title></head>......
  • echarts使用【示例】
    下载npminstallecharts示例<template><divid="main"style="width:600px;height:400px;"></div></template><scriptsetup>import{onMounted}from'vue';import*asechartsfrom'echart......
  • 使用echarts报错【echarts使用示例】
    错误代码<template><h1>home</h1><divid="main"style="width:600px;height:400px;"></div></template><scriptsetup>import{onMounted}from'vue';import*asechartsfrom'ec......
  • [Java原创精品]基于Springboot+Vue的仿小红书博客论坛系统,社交媒体平台,含DFA敏感词过
    项目提供:完整源码+数据库sql文件+数据库表对应Excel文件项目获取看主......