echarts写仪表盘,指针到不同区域显示不同颜色

125630_nfFP_3549294.png

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>空气质量</title>
	<link rel="stylesheet" href="http://v3.bootcss.com/dist/css/bootstrap.min.css">
	<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
	<script src="http://echarts.baidu.com/dist/echarts.min.js"></script>
</head>

<body>

	<!--正文-->
	<div class="container-fluid">
		<div class="title">
			<h4 class="text-center">房间名称实时空气质量</h4>
		</div>




		<div class="gaugelabel">
			<div class="gaugbox pull-left" style="width: 33%;">

				<a href="#">
					<div class="pull-left" id="pm" style="width: 100%;height: 500px"></div>
				</a>
			</div>
			<div class="gaugbox pull-left" style="width: 22%">

				<a href="#">
					<div class="pull-left" id="co2" style="width: 100%;height: 500px"></div>
				</a>
			</div>
			<div class="gaugbox pull-left" style="width: 22%">

				<a href="#">
					<div class="pull-left" id="voc" style="width: 100%;height: 500px"></div>
				</a>
			</div>
			<div class="gaugbox pull-left" style="width: 22%">

				<a href="#">
					<div class="pull-left" id="jqz" style="width: 100%;height: 500px"></div>
				</a>
			</div>
		</div>
	</div>
</body>
<script>
	$(document).ready(function() {



		gaugeimg('pm', '室内PM2.5', 0, 500, 300, 'μg/m3');
		gaugeimg('co2', '二氧化碳', 350, 5000, 780, 'ppm');
		gaugeimg('voc', 'voc', 0.2, 25, 25, 'mg/m3');
		gaugeimg('jqz', '甲醛', 0, 0.30, 0.2, 'mg/m3');



		/*
		 *id:id;
		 *title:仪表盘名称
		 *min:最小值
		 *max:最大值
		 *val:当前实际值
		 *unit:单位符号
		 */
		function gaugeimg(id, title, min, max, val, unit) {
			var myChart = echarts.init(document.getElementById(id)); //初始化

			option = {
				title: {
					text: title,
					x: 'center',
					y: '90%'
				},
				tooltip: {
					formatter: "{a} <br/>{b} : {c}" + unit
				},
				toolbox: {
					show: false,
					feature: {
						mark: {
							show: true
						},
						restore: {
							show: true
						},
						saveAsImage: {
							show: true
						}
					}
				},
				series: [{
					center: ['50%', '50%'],
					number: [0, '50%'],
					startAngle: 240, //仪表盘起始角度
					endAngle: -60, //仪表盘结束角度
					//min: min,
					//max: max,
					splitNumber: 10, //分割段数
					name: title,
					type: 'gauge',
					radius: '90%',
					splitNumber: 10, // 分割段数,默认为5
					axisLine: { // 坐标轴线
						lineStyle: { // 属性lineStyle控制线条样式
							color: [
								[0.25, '#ddd'],
								[1, '#ddd']
							],
							width: 8
						}
					},
					axisTick: { // 坐标轴小标记
						splitNumber: 10, // 每份split细分多少段
						length: 12, // 属性length控制线长
						lineStyle: { // 属性lineStyle控制线条样式
							color: 'auto'
						}
					},
					axisLabel: { // 坐标轴文本标签,详见axis.axisLabel
						textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
							color: 'auto'
						}
					},
					splitLine: { // 分隔线
						show: true, // 默认显示,属性show控制显示与否
						length: 22, // 属性length控制线长
						lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
							color: 'auto'
						}
					},
					pointer: { //指针粗细
						width: 5
					},
					title: {
						textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
							fontWeight: 'bolder'
						},
						"show": true,
						"offsetCenter": [0, "-30%"],
						"padding": [5, 10],
						"fontSize": 18,
						//"color": "auto",
					},
					detail: {
						formatter: '{value}' + unit,
						textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
							color: 'auto',
							fontWeight: 'bolder',
							"fontSize": 20
						}
					},

					data: [{
						//value: val,
						//name: name
					}]
				}]
			};
			option.series[0].min = min;
			option.series[0].max = max;
			option.series[0].data[0].value = val;
			option.series[0].axisLine.lineStyle.color[0][0] = (val - min) / (max - min);
			option.series[0].axisLine.lineStyle.color[0][1] = detectionData(val, id);
			myChart.setOption(option);
		}


		/*
		 *颜色设置,
		 */
		function detectionData(str, id) {

			if (id == 'pm') { //空气颜色设置
				var color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
					offset: 0,
					color: '#56b7ef'
				}, {
					offset: 1,
					color: '#56b7ef'
				}]);
				option.series[0].data[0].name = '优';
				if (str >= 51 && str <= 100) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#00ab35'
					}, {
						offset: 1,
						color: '#00ab35'
					}]);
					option.series[0].data[0].name = '良';
				}
				if (str >= 101 && str <= 150) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#98c100'
					}, {
						offset: 1,
						color: '#98c100'
					}]);
					option.series[0].data[0].name = '轻度污染';
				}
				if (str >= 151 && str <= 200) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#f49c00'
					}, {
						offset: 1,
						color: '#f49c00'
					}]);
					option.series[0].data[0].name = '中度污染';
				}
				if (str >= 201 && str <= 300) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#fd2c00'
					}, {
						offset: 1,
						color: '#fd2c00'
					}]);
					option.series[0].data[0].name = '重度污染';
				} else if (str > 300) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#9d3f7e'
					}, {
						offset: 1,
						color: '#9d3f7e'
					}]);
					option.series[0].data[0].name = '严重污染';
				}
				option.series[0].axisLine.lineStyle.width = '11'; //重置仪表盘轴线宽度
				option.series[0].axisTick.length = '16'; //重置仪表盘刻度线长度
				option.series[0].title.color = color.colorStops[1].color; //字体颜色和轴线颜色一致
				option.series[0].title.fontSize = 30; //第一个字体变大


				return color;
			}
			if (id == 'co2') { //二氧化碳颜色设置

				var color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
					offset: 0,
					color: '#56b7ef'
				}, {
					offset: 1,
					color: '#56b7ef'
				}]);
				option.series[0].data[0].name = '同一般室外环境';
				if (str >= 450 && str <= 1000) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#00ab35'
					}, {
						offset: 1,
						color: '#00ab35'
					}]);
					option.series[0].data[0].name = '空气清新';
				}
				if (str >= 1001 && str <= 2000) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#f49c00'
					}, {
						offset: 1,
						color: '#f49c00'
					}]);
					option.series[0].data[0].name = '空气混浊';
				}
				if (str >= 2001 && str <= 5000) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#fd2c00'
					}, {
						offset: 1,
						color: '#fd2c00'
					}]);
					option.series[0].data[0].name = '头痛、轻度恶心';
				} else if (str > 5000) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#9f3979'
					}, {
						offset: 1,
						color: '#9f3979'
					}]);
					option.series[0].data[0].name = '严重缺氧';
				}
				option.series[0].title.color = color.colorStops[1].color; //字体颜色和轴线颜色一致
				return color;
			}
			if (id == 'voc') { //voc颜色
				var color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
					offset: 0,
					color: '#56b7ef'
				}, {
					offset: 1,
					color: '#56b7ef'
				}]);
				option.series[0].data[0].name = '无效应水平';
				if (str >= 0.3 && str < 3) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#f49c00'
					}, {
						offset: 1,
						color: '#f49c00'
					}]);
					option.series[0].data[0].name = '感到不舒服';
				} else if (str >= 25) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#9f3979'
					}, {
						offset: 1,
						color: '#9f3979'
					}]);
					option.series[0].data[0].name = '出现毒性';
				}
				option.series[0].title.color = color.colorStops[1].color; //字体颜色和轴线颜色一致
				return color;
			}
			if (id == 'jqz') { //甲醛颜色设置

				var color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
					offset: 0,
					color: '#56b7ef'
				}, {
					offset: 1,
					color: '#56b7ef'
				}]);
				option.series[0].data[0].name = '正常';
				if (str >= 0.10 && str <= 0.20) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#00ab35'
					}, {
						offset: 1,
						color: '#00ab35'
					}]);
					option.series[0].data[0].name = '轻度污染';
				}

				if (str >= 0.20 && str <= 0.30) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#fd2c00'
					}, {
						offset: 1,
						color: '#fd2c00'
					}]);
					option.series[0].data[0].name = '中度污染';
				} else if (str > 0.30) {
					color = new echarts.graphic.LinearGradient(0, 0, 1, 1, [{
						offset: 0,
						color: '#9f3979'
					}, {
						offset: 1,
						color: '#9f3979'
					}]);
					option.series[0].data[0].name = '重度污染';
				}
				option.series[0].title.color = color.colorStops[1].color; //字体颜色和轴线颜色一致
				return color;
			}


		}



	})

</script>

</html>

1.要想使仪表盘颜色全部一样,设置

option.series[0].axisLine.lineStyle.color[0][0] =100;

转载于:https://my.oschina.net/u/3549294/blog/1586818

相关推荐

极致呈现系列之:Echarts仪表盘的光影奇迹

详细介绍了Echarts中的仪表盘组件

九仞山的专栏 2151

实现一个仪表盘

UI 甩过来了这样的一张图,让我实现,作为一位面向Google百度编程的程序媛,立马打开了搜索引擎,找遍了都没有找到合适的插件。怎么办呢?只能自己来了呀!接下来我们就从这几个点逐步击破,实现效果,哈哈哈哈哈哈哈哈哈哈哈 开始吧!!!

beauty_600的博客 2080

Echarts-仪表盘

Echarts-仪表盘案例

m0_62785037的博客 1076

微信小程序 纯css画仪表盘

canvas和纯css绘制仪表盘

阿坤的博客 2245

HTML5 ECharts汽车仪表盘动画特效实战

ECharts 提供了丰富的图表类型,包括折线图(Line Chart)、柱状图(Bar Chart)、饼图(Pie Chart)、雷达图(Radar Chart)、散点图(Scatter Chart)、热力图(Heatmap)以及仪表盘图(Gauge Chart)等。每种图表都有其适用的数据展示场景:图表类型适用场景示例折线图时间序列数据变化趋势分析柱状图多类数据对比饼图数据占比展示雷达图多维度数据综合分析散点图两变量之间的关系分析。

weixin_42389113的博客 1295

HTML5 ECharts动态仪表盘动画特效实战代码

ECharts是一个使用JavaScript编写的开源可视化库,它提供了丰富的图表类型和灵活的配置选项,允许开发者轻松创建交互式、响应式的图表。ECharts在数据可视化领域中的广泛使用,得益于它的高性能和易用性。ECharts,中文名为“易 charts”,是一款由百度团队开发的开源可视化库,以JavaScript编写,旨在为开发者提供简单、易用的图表解决方案。它的诞生填补了在前端领域内,国内缺乏一个功能强大、使用方便的图表工具的空白。

weixin_35811662的博客 999

echarts里面如何设置仪表盘图表里面数字的颜色

echarts的仪表盘图表

m0_64053511的博客 5419

大模型系统构建的“三驾马车”——Prompt、Context与Harness工程

在LLM应用开发的早期阶段,我们热衷于比拼“提示词”的精妙程度。那时,一个精心构造的思维链CoT就能让模型的表现提升10%以上。随着大模型从“玩具”走向“生产系统”,我们逐渐意识到:单一的 Prompt 只是起点,而非终点。 真正的工业级应用,需要构建一套三层递进的工程体系——Prompt Engineering、Context Engineering 和 Harness Engineering。

西木风落 604

vue+echarts设置温度仪表盘并自定义区段颜色

原文链接:https://dsx2016.com/?p=1486 公众号:大师兄2016 前言 本文主要描述arduino获取温湿度数据后实时显示在web面板上 相关内容点 vue-cli2 百度echarts 本篇只介绍单独拆分图表段样式设置效果,实时数据采用websocket来实现,其他篇章再描述. 官方demo 官网地址: https://echarts.apache.org/examples/zh/index.html?theme=light#chart-typ.

大师兄 5966

C# 操作Excel的时候,出现"被呼叫方拒绝接受呼叫的异常"的解决方案(参考官方给出的解决方案)

首先官方有对这个错误给出解释和解决方案,连接如下: https://docs.microsoft.com/zh-cn/previous-versions/ms228772(v=vs.120)#%E5%8F%AF%E9%9D%A0%E7%BC%96%E7%A8%8B 简单来说,貌似是线程问题,我猜。。。 之前我尝试着在代码中添加 Thread.Sleep(1000); 来进行解决,这种办...

Ck_Max的博客 5768

基于树莓派与ROS的桌面机器人开发:从硬件组装到AI集成实战

嵌入式系统与机器人操作系统(ROS)是构建智能硬件的核心技术基础。嵌入式系统为设备提供了专用计算与控制能力,而ROS作为机器人开发的中间件框架,通过节点、话题和服务等机制,实现了感知、决策、执行等模块间的松耦合通信与高效集成。这种架构极大地提升了机器人系统的可扩展性与可维护性,其技术价值在于能够将复杂的AI算法,如计算机视觉和语音识别,与实体硬件执行机构无缝结合,从而快速构建出具备环境交互能力的智能体。在桌面机器人、教育套件及服务机器人原型开发等应用场景中,该技术栈尤为适用。本文以开源的Wall-E桌面机器

weixin_26775679的博客 651

echarts自定义仪表盘样式及一些属性了解

本文主要对Echarts自定义仪表盘及其一些属性的详细介绍。这里自定义仪表盘主要通过对option对象中的series数组和相关属性进行设置来实现。series里面可用于配置仪表盘的数据系列,包括数据值、指针样式、背景颜色等。其中type属性应设置为'gauge',以指明这是一个仪表盘图表。graphic是原生图形元素组件......

qq_53911056的博客 6177

PP-OCRv6 ONNX部署的官方和手搓方案

PP-OCRv6 基于全新设计的 PPLCNetV4 统一骨干网络,提供 tiny、small、medium 三档模型,分别面向端侧/IoT、移动端/桌面端、服务端场景。在内部多场景综合评估集上,PP-OCRv6_medium 相比 PP-OCRv5_server 识别精度提升 5.1%、检测精度提升 4.6%,同时 GPU 推理速度提升 2.37×;以仅 34.5M 参数的规模,精度超越 Qwen3-VL-235B、GPT-5.5 等大型视觉语言模型。

懒人的技术笔记 1897

arduino动态刷新显示_vue+echarts设置arduino温度仪表盘并自定义区段颜色

NO.1前言本文主要描述arduino获取温湿度数据后实时显示在web面板上相关内容点vue-cli2百度echarts本篇只介绍单独拆分图表段样式设置效果,实时数据采用websocket来实现,其他篇章再描述.NO.2官方demo官网地址:https://echarts.apache.org/examples/zh/index.html?theme=light#chart-type-g...

weixin_39842918的博客 562

CondaHTTPError: HTTP 404 NOT FOUND for url

用conda创建新环境时出现问题了。

qq_40713201的博客 1270

GD32F307 USB主机模式 外接U盘升级 调试问题记录

在移植USB驱动做主机读U盘时遇到的问题。 问题1、移植USB驱动完成后,插入U盘,一直在 usbh_core_task 的默认case 和测试case中反复执行无法执行到后面的连接及以后得步骤。 问题2、在 usbh_core_task 函数中,一直卡在枚举的case,无法执行下面操作。具体卡在urb_wait的while循环无法跳出。

LGC_764385701的博客 1949

option设置hover背景颜色_vue+echarts设置温度仪表盘并自定义区段颜色

原文链接:vue+echarts设置温度仪表盘并自定义区段颜色公众号:大师兄2016前言本文主要描述arduino获取温湿度数据后实时显示在web面板上相关内容点vue-cli2百度echarts本篇只介绍单独拆分图表段样式设置效果,实时数据采用websocket来实现,其他篇章再描述.官方demo官网地址:https://echarts.apache.org/examples/zh/index....

weixin_39942335的博客 656

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息

本文记录的是基于MobileNet V4的YOLOv11目标检测轻量化改进方法研究。其中MobileViT块旨在以较少的参数对输入张量中的进行建模,结合卷积与 Transformer 的优势,并实现有效的信息编码与融合本文配置了原论文中和三种模型,以满足不同的需求。

Limiiiing的博客 1074

ECharts自定义仪表盘

实现效果 源代码 html代码 <div class="lui_seal_platform_col_4_3"> <!--3.盖章异常预警仪表盘--> <div class="lui_hr_platform_block_echarts_item"> <div id="seal_warning_gauge"></div>...

qq_40511157的博客 3540

用长tree方式做等长线

1)写一个sdc,把等长线的起点设置成clock source,用于创建create_clock,至于period和waveform等参数随便写即可。然后clock_opt -from build_clock -to route_clock即可。3)在正式cts之前或之后,给自己创建的scenario长tree并don't touch。前面讲过了如何用set_data_check做等长线,这里再讲一下如何用cts的方式做。2)为该clock创建一个新mode,并创建对应的scenario。

m0_61544122的博客 622

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

31Echarts仪表盘镂空且导入外来图片

镂空效果实现思路:三图叠加。(1)仪表盘,画出仪表盘;(2)饼图一,从仪表盘左界开始,顺时针用绿色填充仪表盘整个显示区,用透明填充仪表盘下方空白;(3)饼图二,从仪表盘右界开始,逆时针用白色填充仪表盘部分显示区(这个计算过程较为复杂),用透明填充整个圆环的其它部分;```html:run<!DOCTYPE html><html lang="en"><head> ...

weixin_30662539的博客 366

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

恶心的仪表盘,有点烦的车载仪表盘,echarts写的

恩,则是一个很恶心的仪表盘,我不是很想写,但是客户需要啊,(捂脸),所以我就照着要求写了一份,做个备份,万一以后还能用到呢对吧。 这是效果图: 不算很好看,不过吧总算是做出来了,这是看一位大佬整理出来的,我不太会写注释,有兴趣的可以先去看看那位大佬的代码,在看我的应该会好点 下面上代码, &amp;amp;lt;body &amp;amp;gt; &amp;amp;lt;!-- &amp;amp;lt;div id = &amp;quot;gradi

qq_35919264的博客 2304

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Echarts关于仪表盘

Echarts关于仪表盘 先来无事,特制作不一样的图标一发,把仪表盘做成百分条,我也是醉了 <div id="main" style="width: 400px;height: 300px;"></div> <script> var myChart = echarts.init(document.getElementById("main"));

zc763375777的博客 1万+

echarts 根据自己的需求展示显示区域

项目中遇到一个问题,一个数量段显示一个颜色,指针也跟着变化,然后研究了一下,保存下来,方便以后使用,也给大家提供一个方案 <div style="width: 250px; height: 250px" id="gaugeEchart"></div> function auto(){ let myChart = this.$echarts.init(document.getElementById("gaugeEchart")); let value = 1.354.

fengxiaopeng74的博客 1220

Vue+Echarts实现仪表盘(开发小记)

目标图案: 创建组件DashBoard.vue: <template> <div id="dashboardHumidity" style="height: 100%"></div> </template> <script> export default { name: "DashBoard", props: { // 正常的业务数据,对应echarts仪表盘配置中series[0].data se..

Master_Tang的博客 2982

echarts疑难杂症

1.标注最大值最小值,区域渐变,设置高亮区域 2.x轴竖版显示,柱状图渐变色 3.实现横向柱状图 4.两个legend 5.设置高亮legend

开发要有产品的思维 962
上一篇: 24. Spring Boot 事务的使用
下一篇: 学习进度条
weixin_33728708
博客等级 码龄11年 5472粉丝 1452原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值