Echarts-仪表盘

Echarts-仪表盘

1 绘制单仪表盘[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkMh8ZPJ-1650958054585)(C:\Users\huawei\AppData\Roaming\Typora\typora-user-images\image-20220421160053968.png)]

<html>

<head>
    <meta charset="utf-8">
    <!-- 引入 ECharts 文件 -->
    <script src="js/echarts.js"></script>

</head>

<body>
    <!---为ECharts准备一个具备大小(宽高)的DOM--->
    <div id="main" style="width: 800px; height: 600px"></div>
    <script type="text/javascript">
        //基于准备好的DOM,初始化ECharts图表
        var myChart = echarts.init(document.getElementById("main"));
        //指定图表的配置项和数据
        var color1 = [[0.2, "rgba(255,0,0,1)"], [0.8, "rgba(0,255,255,1)"], [1, "rgba(0,255,0,1)"]];
        var data1 = [{
            name: "完成率(%)",
            value: 50,
        }];
        var option = {  //指定图表的配置项和数据
            backgroundColor: 'rgba(128, 128, 128, 0.1)',  //rgba设置透明度0.1
            tooltip: {  //配置提示框组件
                show: true,
                formatter: "{b}:{c}%",
                backgroundColor: "rgba(255,0,0,0.8)",  //设置提示框浮层的背景颜色
                borderColor: "#333",  //设置提示框浮层的边框颜色
                borderWidth: 0,  //设置提示框浮层的边框宽
                padding: 5,  //设置提示框浮层内边距,单位px,默认各方向内边距为5
                textStyle: {  //设置提示框浮层的文本样式
                    //color,fontStyle,fontWeight,fontFamily,fontSize,lineHeight
                },
            },
            title: {  //配置标题组件
                text: '项目实际完成率(%)',
                x: 'center', y: 25,
                show: true,  //设置是否显示标题,默认true
                //设置相对于仪表盘中心的偏移位置
                //数组第一项是水平方向的偏移,第二项是垂直方向的偏移
                offsetCenter: [50, "20%"],
                textStyle: {
                    fontFamily: "黑体",  //设置字体名称,默认宋体
                    color: "blue",  //设置字体颜色,默认#333
                    fontSize: 20,  //设置字体大小,默认15
                }
            },
            series: [
                {
                    name: "单仪表盘示例",  //设置系列名称,用于tooltip的显示,legend的图例筛选
                    type: "gauge",  //设置系列类型
                    radius: "80%",  //设置参数:number,string,仪表盘半径,默认75% 
                    center: ["50%", "55%"],  //设置仪表盘位置(圆心坐标)
                    startAngle: 225,  //设置仪表盘起始角度,默认225
                    endAngle: -45,  //设置仪表盘结束角度,默认-45
                    clockwise: true,  //设置仪表盘刻度是否是顺时针增长,默认true
                    min: 0,  //设置最小的数据值,默认0,映射到minAngle
                    max: 100,  //设置最大的数据值,默认100,映射到maxAngle
                    splitNumber: 10,  //设置仪表盘刻度的分割段数,默认10
                    axisLine: {  //设置仪表盘轴线(轮廓线)相关配置
                        show: true,  //设置是否显示仪表盘轴线(轮廓线),默认true
                        lineStyle: {  //设置仪表盘轴线样式
                            color: color1,  //设置仪表盘的轴线可以被分成不同颜色的多段
                            opacity: 1,  //设置图形透明度,支持从0到1的数字,为0时不绘制该图形
                            width: 30,  //设置轴线宽度,默认30
                            shadowBlur: 20,  //设置(发光效果)图形阴影的模糊大小
                            shadowColor: "#fff",  //设置阴影颜色,支持的格式同color
                        }
                    },
                    splitLine: {  //设置分隔线样式
                        show: true,  //设置是否显示分隔线,默认true
                        length: 30,  //设置分隔线线长,支持相对半径的百分比,默认30
                        lineStyle: {  //设置分隔线样式
                            color: "#eee",  //设置线的颜色,默认#eee
                            //设置图形透明度,支持从0到1的数字,为0时不绘制该图形
                            opacity: 1,
                            width: 2,  //设置线度,默认2
                            type: "solid",  //设置线的类型,默认solid,此外还有dashed,dotted
                            shadowBlur: 10,  //设置(发光效果)图形阴影的模糊大小
                            shadowColor: "#fff",  //设置阴影颜色,支持的格式同color
                        }
                    },
                    axisTick: {  //设置刻度(线)样式
                        show: true,  //设置是否显示刻度(线),默认true
                        splitNumber: 5,  //设置分隔线之间分割的刻度数,默认5
                        length: 8,  //设置刻度线长.支持相对半径的百分比,默认8
                        lineStyle: {  //设置刻度线样式
                            color: "#eee",  //设置线的颜色,默认#eee
                            //设置图形透明度.支持从0到1的数字,为0时不绘制该图形
                            opacity: 1,
                            width: 1,  //设置线度,默认 1
                            type: "solid",  //设置线的类型,默认solid,此外还有dashed,dotted
                            shadowBlur: 10,  //设置(发光效果)图形阴影的模糊大小
                            shadowColor: "#fff",  //设置阴影颜色,支持的格式同color
                        },
                    },
                    axisLabel: {  //设置刻度标签
                        show: true,  //设置是否显示标签,默认true
                        distance: 25,  //设置标签与刻度线的距离,默认5
                        color: "blue",  //设置文字的颜色
                        fontSize: 32,  //设置文字的字体大小,默认5
                        //设置刻度标签的内容格式器,支持字符串模板和回调函数两种形式
                        formatter: "{value}",
                    },
                    pointer: {  //设置仪表盘指针
                        show: true,  //设置是否显示指针,默认true
                        //设置指针长度,可以是绝对值,也可是相对于半径的百分比,默认80%
                        length: "70%",
                        width: 9,  //设置指针宽度,默认8
                    },
                    itemStyle: {  //设置仪表盘指针样式
                        color: "auto",  //设置指针颜色,默认(auto)取数值所在的区间的颜色
                        opacity: 1,  //设置图形透明度,支持从0到1的数字,为0时不绘制该图形
                        borderWidth: 0,  //设置描边线宽,默认0,为0时无描边
                        //设置柱条的描边类型,默认为实线,支持'solid','dashed','dotted'
                        borderType: "solid",
                        borderColor: "#000",  //设置图形的描边颜色,默认"#000",不支持回调函数
                        shadowBlur: 10,  //设置(发光效果)图形阴影的模糊大小
                        shadowColor: "#fff",  //设置阴影颜色,支持的格式同color
                    },
                    emphasis: {  //设置高亮的仪表盘指针样式
                        itemStyle: {
                            //高亮和正常,两者具有同样的配置项,只是在不同状态下配置项的值不同
                        }
                    },
                    detail: {  //设置仪表盘详情,用于显示数据
                        show: true,  //设置是否显示详情,默认true
                        offsetCenter: [0, "50%"],  //设置相对于仪表盘中心的偏移位置
                        color: "auto",  //设置文字的颜色,默认auto
                        fontSize: 30,  //设置文字的字体大小,默认15
                        formatter: "{value}%",  //格式化函数或者字符串
                    },
                    data: data1
                }
            ]
        };
        setInterval(function () {
            option.series[0].data[0].value = (Math.random() * 100).toFixed(2);
            myChart.setOption(option, true);  //使用指定的配置项和数据显示图表
        }, 2000);  //每2秒重新渲染一次,以实现动态效果
    </script>
</body>

</html>

2绘制多层仪表盘在这里插入图片描述

<template>
    <div class="chart_4" id="main" ></div>
</template>
<script>
    import * as echarts from "echarts";
    export default {
        data() {
            return {}
        },
        mounted() {
    		this.chart_write(); 
        },
        methods: {
            chart_write() {
              let myChart = echarts.init(document.getElementById("main"));

              let option =  {
                series: [
                  // 外部 仪表盘
                  {
                    // 图表类型
                    type: "gauge",
                    // 刻度最小值
                    min: 350,
                    // 刻度最大值
                    max: 950,
                    // 仪表盘的大小
                    radius: '80%',
                    // 设置等份(多少大的刻度)
                    splitNumber: 12,
                    axisLine: {
                      // 控制线条样式
                      lineStyle: {
                        type: 'dashed',
                        color: [[1, '#4565A8']],
                        width: 3
                      }
                    },
                    // 控制小刻度
                    axisTick: {
                      show: false
                    },
                    // 控制大刻度
                    splitLine: {
                      // 距离线的位置
                      distance: -4,
                      // 长度
                      length: 5,
                      // 刻度线的样式
                      lineStyle: {
                        color: '#4565A8'
                      }
                    },
                    // 刻度样式设置
                    axisLabel: {
                      // 位置
                      distance: -60,
                      // 颜色
                      color: '#4565A8',
                      // 字体大小
                      fontSize: 25
                    },
                    // 指针设置
                     pointer: {
                      // 指针图标
                      icon: "path://M12.8,0.7l12,40.1H0.7L12.8,0.7z",
                      // 指针长度
                      length: "12%",
                      // 指针宽度
                      width: 20,
                      // 指针位置
                      offsetCenter: [0, "-60%"],
                      // 指针颜色
                      itemStyle: {
                        color: "auto"
                      }
                    },
                    // '评分结果'调整
                    title: {
                      // 位置
                      offsetCenter: [0, "90%"],
                      // 字体大小
                      fontSize: 50,
                      // 字体颜色
                      color: "#919cb0"
                    },
                    // data 数据显示 调整
                    detail: {
                      // 字体大小
                      fontSize: 60,
                      // 位置
                      offsetCenter: [0, "0%"],
                      // 显示的内容
                      formatter: function(value) {
                        return Math.round(value*1)  + "分";
                      },
                      // 颜色
                      color: '#fff'
                    },
                    // 展示结果
                    data: [
                      {
                        // detail 展示内容结果值
                        value: 700,
                        // title 展示内容
                        name: "评分结果",
                      }
                    ]
                  },
                  // 内部 仪表盘
                  {
                    type: "gauge",
                    splitNumber: 8,
                    axisLine: {
                      lineStyle: {
                        width: 6,
                        color: [
                          [0.25, "#FF6E76"],
                          [0.5, "#FDDD60"],
                          [0.75, "#58D9F9"],
                          [1, "#7CFFB2"]
                        ]
                      }
                    },
                    axisTick: {
                      length: 12,
                      lineStyle: {
                        color: "auto",
                        width: 2
                      }
                    },
                    splitLine: {
                      length: 20,
                      lineStyle: {
                        color: "auto",
                        width: 5
                      }
                    },
                    axisLabel: {
                      color: "#fff",
                      fontSize: 35,
                      distance: 30,
                      formatter: function(value) {
                        console.log(value,"00000");
                        if (value === 87.5) {
                          return "优";
                        } else if (value === 62.5) {
                          return "良";
                        } else if (value === 37.5) {
                          return "中";
                        } else if (value === 12.5) {
                          return "差";
                        }
                        return "";
                      }
                    },
                  }
                ]
              };
              myChart.setOption(option);
            },
        }
    }
</script>

3 绘制多仪表盘在这里插入图片描述

<html>

<head>
	<meta charset="utf-8">
	<!-- 引入 ECharts 文件 -->
	<script src="js/echarts.js"></script>

</head>

<body>
	<!---为ECharts准备一个具备大小(宽高)的DOM--->
	<div id="main" style="width: 800px; height: 600px"></div>
	<script type="text/javascript">
		//基于准备好的DOM,初始化ECharts图表
		var myChart = echarts.init(document.getElementById("main"));
		//指定图表的配置项和数据
		var option = {  //指定图表的配置项和数据
			backgroundColor: 'rgba(128, 128, 128, 0.1)',  //rgba设置透明度0.1
			title: {  //配置标题组件
				text: '多仪表盘实例 (共四个仪表盘)',
				x: 'center', y: 100,
				show: true,  //设置是否显示标题,默认true
				offsetCenter: [50, "20%"],  //设置相对于仪表盘中心的偏移
				textStyle: {
					fontFamily: "黑体",  //设置字体名称,默认宋体
					color: "blue",  //设置字体颜色,默认#333
					fontSize: 20,  //设置字体大小,默认15
				}
			},
			tooltip: { formatter: "{a} <br/>{c} {b}" },  //配置提示框组件
			series: [  //配置数据系列,共有4个仪表盘
				{   //设置数据系列之1:速度
					name: '速度', type: 'gauge', z: 3,
					min: 0,  //设置速度仪表盘的最小值
					max: 220,  //设置速度仪表盘的最大值
					splitNumber: 22,  //设置速度仪表盘的分隔数目为22
					radius: '50%',  //设置速度仪表盘的大小
					axisLine: { lineStyle: { width: 10 } },
					axisTick: {  //设置坐标轴小标记
						length: 15,  //设置属性length控制线长
						splitNumber: 5,  //设置坐标轴小标记的分隔数目为5
						lineStyle: {  //设置属性lineStyle控制线条样式
							color: 'auto'
						}
					},
					splitLine: { length: 20, lineStyle: { color: 'auto' } },
					title: { textStyle: { fontWeight: 'bolder', fontSize: 20, fontStyle: 'italic' } },
					detail: { textStyle: { fontWeight: 'bolder' } },
					data: [{ value: 40, name: '车速(km/h)' }]
				},
				{   //设置数据系列之2:转速
					name: '转速', type: 'gauge',
					center: ['20%', '55%'],  //设置转速仪表盘中心点的位置,默认全局居中
					radius: '35%',  //设置转速油表仪表盘的大小
					min: 0,  //设置转速仪表盘的最小值
					max: 7,  //设置转速仪表盘的最大值
					endAngle: 45,
					splitNumber: 7,  //设置转速仪表盘的分隔数目为7
					axisLine: { lineStyle: { width: 8 } },  //设置属性lineStyle控制线条样式
					axisTick: {  //设置坐标轴小标记
						length: 12,  //设置属性length控制线长
						splitNumber: 5,  //设置坐标轴小标记的分隔数目为5
						lineStyle: {  //设置属性lineStyle控制线条样式
							color: 'auto'
						}
					},
					splitLine: {  //设置分隔线
						length: 20,  //设置属性length控制线长
						lineStyle: {  //设置属性lineStyle(详见lineStyle)控制线条样式
							color: 'auto'
						}
					},
					pointer: { width: 5 },
					title: { offsetCenter: [0, '-30%'], },
					detail: { textStyle: { fontWeight: 'bolder' } },
					data: [{ value: 1.5, name: '转速(x1000 r/min)' }]
				},
				{   //设置数据系列之3:油表
					name: '油表', type: 'gauge',
					center: ['77%', '50%'],  //设置油表仪表盘中心点的位置,默认全局居中
					radius: '25%',  //设置油表仪表盘的大小
					min: 0,  //设置油表仪表盘的最小值
					max: 2,  //设置油表仪表盘的最小值
					startAngle: 135, endAngle: 45,
					splitNumber: 2,  //设置油表的分隔数目为2
					axisLine: { lineStyle: { width: 8 } },  //设置属性lineStyle控制线条样式
					axisTick: {  //设置坐标轴小标记
						splitNumber: 5,  //设置小标记分隔数目为5
						length: 10,  //设置属性length控制线长
						lineStyle: {  //设置属性lineStyle控制线条样式
							color: 'auto'
						}
					},
					axisLabel: {
						formatter: function (v) {
							switch (v + '') {
								case '0': return 'E';
								case '1': return '油表';
								case '2': return 'F';
							}
						}
					},
					splitLine: {  //设置分隔线
						length: 15,  //设置属性length控制线长
						lineStyle: {  //设置属性lineStyle(详见lineStyle)控制线条样式
							color: 'auto'
						}
					},
					pointer: { width: 4 },  //设置油表的指针宽度为4
					title: { show: false },
					detail: { show: false },
					data: [{ value: 0.5, name: 'gas' }]
				},
				{   //设置数据系列之4:水表
					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 '水表';
								case '2': return 'C';
							}
						}
					},
					splitLine: {  //设置分隔线
						length: 15,  //设置属性length控制线长
						lineStyle: {  //设置属性lineStyle(详见lineStyle)控制线条样式
							color: 'auto'
						}
					},
					pointer: { 
                        //设置水表的指针宽度为2
                        width: 2
                        //设置指针长短
                        length: "12%"
                    },  
					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);  //每间2秒重新渲染一次,以实现动态效果
	</script>
</body>

</html>

参考文件官方文档

<think>我们被要求根据用户提供的引用和需求,回答关于使用ECharts实现气温仪表盘的方法和示例。 用户提供的引用中: 引用[1]提到了ECharts仪表盘渐变效果的解决方案,并提供了源代码示例(尽管我们没有看到具体代码,但可以知道它涉及渐变效果)。 引用[2]提到在Vue中定义了一些数据,包括温度(weatherZgwdlist最高温度,weatherZdwdlist最低温度)等,以及一些天气相关的列表,这可能是用于构建天气图表的数据结构。 引用[3]提到版本问题,说明使用ECharts时要注意版本兼容性,特别是5.0.2版本与4.x版本有差异。 用户需求:查找使用ECharts实现气温仪表盘的方法和示例。 结合引用和用户需求,我们可以这样回答: 1. 首先,说明ECharts仪表盘的基本配置方法。 2. 然后,针对气温仪表盘,可能需要展示当前温度,并可能用渐变效果表示温度的高低(例如冷色到暖色的渐变)。 3. 引用[1]中提到渐变效果,我们可以借鉴其方法。 4. 引用[2]中提供了一些数据定义,我们可以参考其数据结构来组织温度数据。 5. 注意版本问题,建议使用与官方示例一致的版本(如5.0.2)以避免样式问题。 由于用户没有提供具体的温度仪表盘的设计要求,我们假设一个常见的场景:展示当前温度,仪表盘有一个刻度范围(如0到40摄氏度),并用颜色渐变表示(低温蓝色到高温红色)。 我们将按照以下步骤构建示例: a. 引入ECharts(注意版本) b. 准备一个容器 c. 配置仪表盘选项 - 定义仪表盘的类型(gauge) - 设置仪表盘的中心位置、半径、起始角度和结束角度 - 设置仪表盘的刻度、分割线、坐标轴线等样式 - 设置仪表盘指针 - 设置仪表盘的数据项(一个数值,即当前温度) - 设置渐变颜色:通过配置仪表盘轴线(axisLine)的lineStyle,使用color属性配置渐变。 根据引用[1]中提到的渐变效果,我们可以使用线性渐变(linear)或径向渐变(radial)。由于仪表盘是圆形的,通常使用径向渐变,但也可以使用线性渐变(按角度渐变)。 在ECharts中,仪表盘的渐变可以通过在axisLine的lineStyle中设置color属性为一个数组,数组的每一项是一个对象,表示颜色和位置。例如,我们可以设置0%处为蓝色,100%处为红色,这样形成一个从蓝到红的渐变。 另外,引用[2]中定义了很多数据,但我们的示例只需要一个温度值。不过,我们可以考虑展示多个指针(如最低温和最高温),但通常一个仪表盘只展示一个值(当前温度)。如果需要同时展示多个值,可能需要多个指针。 下面我们给出一个基本的示例代码(非Vue环境,纯JavaScript)和说明。如果用户使用Vue,可以结合引用[2]中的数据结构来绑定数据。 注意:由于我们无法运行代码,这里只提供代码示例和解释。 步骤: 1. HTML中准备一个容器:<div id="gaugeChart" style="width: 600px;height:400px;"></div> 2. 初始化echarts实例 3. 配置option 下面是示例代码: ``` // 初始化echarts实例 var chartDom = document.getElementById('gaugeChart'); var myChart = echarts.init(chartDom); // 配置选项 var option = { series: [ { type: 'gauge', center: ['50%', '60%'], // 中心点位置 radius: '90%', // 半径 startAngle: 180, // 起始角度(180度对应左侧水平) endAngle: 0, // 结束角度(0度对应右侧水平)这样就是半圆 min: 0, // 最小值 max: 40, // 最大值(假设温度范围0~40℃) // 刻度 axisLine: { lineStyle: { width: 20, // 轴线宽度 // 渐变颜色,使用线性渐变(沿仪表盘的角度方向) // 这里使用线性渐变,渐变方向为0%(起始角度)到100%(结束角度) color: [ [0.3, '#5470c6'], // 0.3位置(30%)处为蓝色 [0.7, '#91cc75'], // 0.7位置(70%)处为绿色 [1, '#ee6666'] // 100%位置处为红色 ] } }, // 刻度标签 axisLabel: { color: 'auto', distance: -20, // 调整标签位置(向圆心方向) fontSize: 12 }, // 刻度线 axisTick: { length: 15, // 刻度线长度 lineStyle: { color: 'auto' } }, // 分割线 splitLine: { length: 20, // 分割线长度 lineStyle: { color: 'auto' } }, // 指针 pointer: { length: '70%', // 指针长度(相对于半径) width: 5, // 指针宽度 itemStyle: { color: 'auto' } }, // 仪表盘标题 title: { offsetCenter: [0, '-40%'], // 向上偏移 fontSize: 14 }, // 仪表盘详情(数值) detail: { valueAnimation: true, // 数值变化动画 formatter: '{value} °C', // 格式化显示 offsetCenter: [0, '-15%'], // 向上偏移 fontSize: 24, color: 'auto' }, data: [{ value: 25, // 当前温度值 name: '当前温度' // 标题 }] } ] }; myChart.setOption(option); ``` 上述代码创建了一个半圆形的仪表盘,温度范围0~40°C,当前温度为25°C,仪表盘轴线颜色根据温度比例渐变(0~30%为蓝色,30%~70%为绿色,70%~100%为红色)。 如果需要在Vue中使用,可以结合引用[2]中的数据结构和引用[3]中的版本建议: 1. 安装指定版本的ECharts:npm install echarts@5.0.2 -S 2.Vue组件中引入echarts 3. 在mounted生命周期中初始化图表(注意在DOM准备好之后) 4. 将数据绑定到option中(例如,将value替换为data中的温度值) 此外,如果用户需要展示更复杂的气温仪表盘,比如同时展示最低温和最高温,可以使用两个指针。但需要注意的是,一个仪表盘系列(series)只能有一个轴线,但可以有两个指针指向不同的值。我们可以在同一个series中设置两个指针,分别表示最低温和最高温。或者,也可以使用两个仪表盘系列(两个半圆叠在一起)分别表示最低温和最高温。 但如果要在一个仪表盘上展示两个值(比如当前气温和设定温度等),则可以使用多个指针。例如: ``` data: [ { value: 25, name: '当前温度' }, { value: 28, name: '设定温度' } ] ``` 同时,在配置项中设置两个指针(默认就会有两个指针)。但要注意,这样两个指针会共享同一个轴线刻度。 因此,根据用户需求,我们可以选择单指针或多指针。 由于用户在引用[2]中提到了最高温度(weatherZgwdlist)和最低温度(weatherZdwdlist),我们可以假设用户可能需要展示这两个值。但仪表盘通常展示一个当前值。如果用户需要同时展示多个指标,可能需要多个仪表盘或者使用其他图表类型(如柱状图、折线图等)。 综上所述,我们提供了基本的实现方法和示例代码,并说明了在Vue中的使用注意事项。 生成的相关问题: 1. 如何在Vue中集成ECharts仪表盘? 2. 如何为ECharts仪表盘添加多个指针? 3. ECharts仪表盘的刻度如何自定义? 4. 如何实现ECharts仪表盘的动态数据更新? 5. 如何解决ECharts版本不兼容导致的样式问题? </think>### 使用 ECharts 实现气温仪表盘的方法和示例 实现气温仪表盘的核心在于合理配置 ECharts 的 `gauge` 图表类型,结合温度数据和视觉样式。以下是具体实现方法: #### 1. **基础仪表盘配置** ```javascript const option = { series: [{ type: 'gauge', radius: '90%', min: -20, // 最低温度 max: 50, // 最高温度 splitNumber: 7, axisLine: { lineStyle: { width: 15, // 温度渐变色配置 (低温蓝→高温红) color: [ [0.3, '#5470c6'], // <0°C [0.7, '#91cc75'], // 常温 [1, '#ee6666'] // >30°C ] } }, detail: { formatter: '{value}°C', // 显示温度值 fontSize: 24 }, data: [{ value: 25, name: '当前温度' }] // 动态数据点 }] }; ``` #### 2. **关键配置说明** - **温度区间渐变**:`axisLine.color` 使用色阶映射温度区间,示例中: - 低于 0°C 显示蓝色 `#5470c6` - 0-30°C 显示绿色 `#91cc75` - 高于 30°C 显示红色 `#ee6666` - **指针样式**: ```javascript pointer: { width: 5 }, itemStyle: { color: '#000' } ``` - **刻度标签**: ```javascript axisLabel: { distance: -20, color: '#999' }, splitLine: { length: 15 } ``` #### 3. **在 Vue 中的完整示例 ([^2] 参考)** ```vue <template> <div ref="chart" style="width: 400px; height: 300px"></div> </template> <script> import * as echarts from 'echarts'; // 确保安装 echarts@5.0.2 ([^3]) export default { data() => ({ currentTemp: 18, // 当前温度值 myChart: null }), mounted() { this.initChart(); }, methods: { initChart() { this.myChart = echarts.init(this.$refs.chart); this.myChart.setOption({ series: [{ type: 'gauge', data: [{ value: this.currentTemp, name: '室外温度' }], // ...其他配置参考基础配置 }] }); } } } </script> ``` #### 4. **动态数据更新** ```javascript // 模拟实时温度变化 setInterval(() => { const newTemp = Math.random() * 50 - 10; // -10°C ~ 40°C this.currentTemp = Number(newTemp.toFixed(1)); this.myChart.setOption({ series: [{ data: [{ value: this.currentTemp }] }] }); }, 3000); ``` #### 5. **效果增强建议** 1. **多指针显示**:添加第二个指针显示体感温度 ```javascript data: [ { value: 25, name: '实际温度' }, { value: 27, name: '体感温度' } ] ``` 2. **预警标记**:当温度 > 35°C 时显示警告图标 3. **背景叠加**:在仪表盘底部添加温度区间色块 > **注意事项**: > - 使用 `echarts@5.0.2` 避免版本兼容问题 ([^3]) > - 渐变阈值比例需根据 `min/max` 计算实际温度区间 > - 移动端需设置 `responsive: true` 自适应容器 效果图示: ![温度仪表盘](https://example.com/gauge-demo.png) *仪表盘中心显示实时温度值,色带随温度动态变化* ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值