一、截图

  

二、说明

  本篇博客主要是有三个亮点:

    ① 刻度标注在仪表盘标线外

    ② 仪表盘存在两个刻度值,分别是(正)0.5~1 和(负)-1~-0.5

    ③ 仪表盘内标注,分别是“超前”和“滞后”

三、代码

  html代码

1 <nz-card style="position:absolute;width: 100%;height: 200px;background-color: #0e0b2a;border: solid 0px #0e0b2a;margin-top: 10px;color: white;padding: 0px;margin: 0px;" >
2   <p style="padding: 3px 10px;color: #8cc5fe;">{{title}}</p>
3   <div echarts [options]="option1" style="position: relative;left: 30px;/* height: 100%; */-webkit-tap-highlight-color: transparent;user-select: none;max-height: 180px;overflow-y: hidden;top: 0px;width: 100%;overflow-x: hidden;"  class="demo-chart"></div>
4 </nz-card>

  ts代码

  

  1 import { Component, OnInit, Input, SimpleChanges } from '@angular/core';
  2 import * as echarts from 'echarts';
  3 import { EChartOption } from 'echarts';
  4
  5 @Component({
  6   selector: 'app-powerfactor',
  7   templateUrl: './powerfactor.component.html',
  8   styleUrls: ['./powerfactor.component.css']
  9 })
 10 export class PowerfactorComponent implements OnInit {
 11
 12   @Input() title;
 13   @Input() newpower  ;
 14   @Input() min;
 15   @Input() max;
 16   @Input() splitNumber;
 17   public option1:EChartOption ;
 18   constructor() {
 19    }
 20
 21
 22   ngOnInit() {
 23
 24     this.setPowerData();
 25   }
 26
 27   ngOnChanges(changes: SimpleChanges): void {
 28     if(parseFloat(this.newpower) >0.5){
 29       this.newpower = -this.newpower;
 30     }else{
 31       //Do-nothing
 32     }
 33     this.setPowerData();
 34   }
 35
 36   //处理功率因数数据
 37   producePowerData(sign){
 38     const _self=this;
 39     if((sign == 0) && (_self.newpower) && (parseFloat(_self.newpower)<0 )){
 40       return _self.newpower;
 41     }else if((sign == 1) && (_self.newpower) && (parseFloat(_self.newpower)>0 )){
 42       return _self.newpower;
 43     }else{
 44       return 0;
 45     }
 46   }
 47
 48
 49   //处理显示指针
 50   producePowerPointer(sign){
 51     //sign,0代表'滞后',1代表'超前'
 52     const _self = this;
 53     if((sign == 0) && (parseFloat(_self.newpower) < 0)){
 54       return true;
 55     }else if((sign == 1) && (parseFloat(_self.newpower) > 0)){
 56       return true;
 57     }else{
 58       return false;
 59     }
 60   }
 61
 62
 63   //绘图函数
 64   setPowerData(){
 65     let powerdata = 0;
 66     if("--" == this.newpower){
 67       powerdata = 0;
 68     }else{
 69       powerdata = this.newpower;
 70     }
 71
 72     this.option1 = {
 73       series: [
 74           //滞后表盘样式
 75           {
 76               type: "gauge",
 77               center:["35%", "45%"], // 仪表位置 ,左右,上下
 78               radius: "54%", //仪表大小
 79               startAngle: -270, //开始角度
 80               endAngle: -360, //结束角度
 81               min:-1,
 82               max:-0.5,
 83               splitNumber:5,
 84               axisLine: {
 85                   show: true,
 86                   lineStyle: { // 属性lineStyle控制线条样式
 87                     color: [
 88                         [0.02,'#f68d26'], // 100% 处的颜色
 89                         [1, '#3838d2'],
 90                     ],
 91                     width: 12
 92                 },
 93
 94               },
 95               splitLine: {
 96                   show: true,
 97                   lineStyle:{
 98                       opacity :0,
 99                   }
100               },
101               axisTick: {
102                   show: false
103               },
104               axisLabel: {
105                   show: true,
106                   distance: -20,
107                   color: '#333',
108                   formatter: function(v){
109                     switch (v+''){
110                         case '-0.5': return '';
111                         case '-0.6': return '';
112                         case '-0.7': return '滞后';
113                         case '-0.8': return '';
114                         case '-0.9': return '';
115                         case '1': return '';
116                         default: return '';
117                     }
118                 },
119
120               },
121               itemStyle :{
122                          color :'black'
123                      },
124              pointer : { //指针样式
125                      show:false,
126                      length: '80%',
127                      width :10,
128                      itemStyle :{
129                          color :'black'
130                     }
131
132               },
133               detail: {
134                   show: false
135               }
136           },
137           //超前表盘样式
138           {
139             type: "gauge",
140             center:["35%", "45%"], // 仪表位置 ,左右,上下
141             radius: "54%", //仪表大小
142             startAngle: -180, //开始角度
143             endAngle: -270, //结束角度
144             min:0.5,
145             max:1,
146             splitNumber:5,
147             axisLine: {
148                 show: true,
149                 lineStyle: { // 属性lineStyle控制线条样式
150                   color: [
151                       [0.98,'#22a0f3'], // 100% 处的颜色
152                       [1, '#f68d26'],
153                   ],
154                   width: 12,
155
156               },
157
158             },
159             splitLine: {
160                 show: true,
161                 lineStyle:{
162                     opacity :0,
163                 }
164             },
165             axisTick: {
166                 show: false
167             },
168             axisLabel: {
169                 show: true,
170                 distance: -20,
171                 color: '#22a0f3',
172                 formatter: function(v){
173                   switch (v+''){
174                       case '0.5': return '';
175                       case '0.6': return '';
176                       case '0.7': return '超前';
177                       case '0.8': return '';
178                       case '0.9': return '';
179                       case '1': return '';
180                       default: return '';
181                   }
182               },
183
184             },
185             itemStyle :{
186                        color :'black'
187                    },
188            pointer : { //指针样式
189                    show:false,
190                    length: '80%',
191                    width :10,
192                    itemStyle :{
193                        color :'black'
194                   }
195
196             },
197             detail: {
198                 show: false
199             }
200         },
201           {
202               type : "gauge",
203               center:["35%", "45%"],  // 默认全局居中
204               radius : "86%",
205               startAngle: -270, //开始角度
206               endAngle: -360, //结束角度
207               min:-1,
208               max:-0.5,
209               splitNumber:5,
210               axisLine : {
211                   show : false,
212                   lineStyle : {
213                       color:[ [0.02,'#f68d26'],[1,'#3740d5']],
214                       width : 0
215                   }
216               },
217               splitLine : {
218                   show:false,
219                   length : 30,
220                   lineStyle : {
221                       width : 2
222                   }
223               },
224               axisTick : { //刻度线样式(及短线样式)
225                    length : 20,
226                    show:false,
227               },
228               axisLabel : { //文字样式(及“10”、“20”等文字样式)
229                   color : "#405a74",
230                   distance : -26, //文字离表盘的距离
231                   fontSize:12,
232                   formatter: function(v){
233                     switch (v+''){
234                         case '-0.5': return '0.5';
235                         case '-0.6': return '';
236                         case '-0.7': return '0.7';
237                         case '-0.8': return '';
238                         case '-0.9': return '0.9';
239                         case '-1': return '1';
240                         default: return '';
241                     }
242                   },
243
244               },
245               itemStyle :{
246                          color :'#13b4eb'
247                  },
248                pointer : { //指针样式
249                      show: this.producePowerPointer(0),
250                      length: '36%',
251                      width :4,
252
253               },
254               detail: {
255                   show:this.producePowerPointer(0),
256                  formatter:'{value}',
257                   offsetCenter: [0, "36%"],
258                   height:30,
259                   textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
260                      color: '#13b4eb',
261                      fontSize : 26
262                  },
263               },
264               data: [{
265                   value:this.producePowerData(0),
266                   // value: this.produceNegativePowerData(),
267                   label: {
268                       textStyle: {
269                           fontSize: 12
270                       }
271                   }
272               }]
273           },
274
275         {
276             type : "gauge",
277             center:["35%", "45%"],  // 默认全局居中
278             radius : "86%",
279             startAngle: -180, //开始角度
280             endAngle: -270, //结束角度
281             min:0.5,
282             max:1,
283             splitNumber:5,
284             axisLine : {
285                 show : false,
286                 lineStyle : { // 属性lineStyle控制线条样式
287                     color:[ [0.98,'#3740d5'],[1,'#f68d26']],
288                     width : 0//表盘宽度
289                 }
290             },
291             splitLine : { //分割线样式(及10、20等长线样式)
292                 show:false,
293                 length : 30,
294                 lineStyle : { // 属性lineStyle控制线条样式
295                     width : 2
296                 }
297             },
298             axisTick : { //刻度线样式(及短线样式)
299                  length : 20,
300                  show:false,
301             },
302             axisLabel : { //文字样式(及“10”、“20”等文字样式)
303                 color : "#405a74",
304                 distance : -26, //文字离表盘的距离
305                 fontSize:12,
306                 formatter: function(v){
307                   switch (v+''){
308                       case '0.5': return '0.5';
309                       case '0.6': return '';
310                       case '0.7': return '0.7';
311                       case '0.8': return '';
312                       case '0.9': return '0.9';
313                       case '1': return '1';
314                       default: return '';
315                   }
316                 },
317
318             },
319             itemStyle :{
320                        color :'#13b4eb',
321                        fontSize:12
322                },
323              pointer : { //指针样式
324                    show:this.producePowerPointer(1),
325                    length: '36%',
326                    width :4,
327
328             },
329             detail: {
330                 show:this.producePowerPointer(1),
331                formatter:'{value}',
332                 offsetCenter: [0, "36%"],
333                 height:30,
334                 textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
335                    color: '#13b4eb',
336                    fontSize : 26
337                },
338             },
339             data: [{
340                 value:this.producePowerData(1),
341                 label: {
342                     textStyle: {
343                         fontSize: 12
344                     }
345                 }
346             }]
347         }
348       ]
349     };
350   }
351
352
353   //处理颜色百分比方法
354   processColorPercent(){
355     const _self = this;
356     if(_self.newpower && _self.max){
357         let c_percent = _self.newpower/_self.max;
358         return c_percent;
359     }else{
360         let c_percent = 0;
361         return c_percent;
362     }
363   }
364
365 }

  

转载于:https://www.cnblogs.com/mycnblogs-guoguo/p/10382150.html

功率因数cosφ仪表盘相关推荐

  1. c语言功率算电量,电功率你理解透了吗?怎么算功率因数?1度电是多少?

    原标题:电功率你理解透了吗?怎么算功率因数?1度电是多少? 1.电功率 电功率即电流在单位时间内所做的功,也就是说电流在1S内做的功. 在交流电路中,电功率分为视在功率.有功功率和无功功率. 1.1有 ...

  2. 一文了解无功功率、无功补偿、功率因数

    一.无功功率 电网中的许多电力设备多是根据电磁感应原理工作的,他们在能量转换过程中建立交变的磁场,在一个周期内吸收的功率和释放的功率相等. 电源能量在通过纯电感或纯电容电路时并没有能量消耗,仅在负荷与 ...

  3. 【收藏】电气设计相关计算公式大全(附举例)

    一.常用的需要系数负荷计算方法 1.用电设备组的计算负荷(三相): 有功计算负荷          Pjs=Kx·Pe(Kw): 无功计算负荷         Qjs=Pjs·tgψ(Kvar): 视 ...

  4. 和功率的计算公式_电机功率计算公式是什么?

    三相平衡功率公式:P=1.732UIcosφ 其中 P-三相平衡功率 1.732-根号3 U-线电压,一般是380伏,变压器出来的电压常常是400伏左右 I-线电流 cosφ- ,是0到1之间的数值, ...

  5. sql 计算 某字段 不同值出现 的次数_教你如何合理选用和计算电线规格,电线回路分配和注意事项...

    电工是装修中非常重要的隐藏工程,其涉及的每一个细节都是不容忽视的,选用电线更是责任重大,如果使用的电线配置不合理或者用劣质电线,就存在发生电气火灾的隐患.因此,根据不同场所要进行合理选择和使用. 一: ...

  6. [渝粤教育] 莆田学院 电机与拖动基础(一) 参考 资料

    教育 -电机与拖动基础(一)-章节资料考试资料-莆田学院[] 绪论节测试 1.[单选题]电机的基本原理就是基于( ),实现机电能量转换. A.牛顿三大定律 B.电磁感应 C.质量守恒 D.洛伦兹力定律 ...

  7. jq中查找上级_【节能学院】电能管理系统在福州三岐小学项目中的设计及应用...

    1 项目概述 该项目总投资约2.6亿元,建筑规模为4.8万㎡,建设地点在南屿镇葛岐村.晓岐村.项目设有教学楼A区.教学楼B区.教学楼C区.综合楼一区.综合楼二区.室内篮球场.室内游泳馆.足球场等. 此 ...

  8. 交流电的有效值rms值_交流电路的功率三角因数原来是这样理解的

    点击"电工电气学习"关注即可免费订阅! 电工学习网:www.diangon.com 关注电工学习网官方微信公众号"电工电气学习",收获更多经验知识. 交流电路中 ...

  9. 以下不属于时序逻辑电路的有_电工电子技术(不建议浪费时间学习的科目)

    (声明:本资料来自网络,侵权请告知删除.文末有全套高清版资料下载链接,敬请下载学习) 2019年7月在天津召开的土力学及岩土工程年会上,有一场青年教师的土力学讲课竞赛,由我作一些点评,其中关于土颗粒与 ...

  10. yb3防爆电机型号含义_YBK3防爆电机介绍

    YBK3防爆电机介绍及标准 YBK3防爆电机全称:YBK3煤矿井下用隔爆型三相异步电动机,是在YBK2防爆电机的基础上结合当前国内先进的电磁技术研制而成,该电机具有高效.节能.寿命长.性能好.噪音低. ...

最新文章

  1. Microsoft.Data.ConnectionUI.DataConnectionDialog
  2. php中jwt权限认证,php 后端实现JWT认证方法示例
  3. 自学python困难吗_Python学习难不难?零基础好学吗?
  4. 小程序中ajax返回数据,请问在小程序中如何从请求success中将数据返回给对象data?...
  5. Solr实战(二):索引操作
  6. 记一次ubuntu阿里的下载源的问题
  7. JS高级——JSON、数据存储学习笔记
  8. 一个WordPress站点绑定多个域名
  9. 通讯与计算机网络作业,通讯与计算机网络作业平时作业(填空题问答和计算题)讲述.doc...
  10. 如何让自己的email地址永久有效
  11. 想搭建一个手游平台怎么做?需要了解哪些细节?
  12. NATAPP内网穿透
  13. 将类似html数据打印机,白激光打印机的工作原理.doc
  14. 【C/C++基础进阶系列】实战记录 -- 内存泄漏检测相关总结
  15. javascript基础常识问答(三)
  16. 1 根文件系统 简单来说,(根文件系统)
  17. 遭遇svchoct.exe,vonine.exe,HBKernel32.sys,ssdtti.sys,System.exe,ublhbztl.sys等2
  18. 【线上分享】全球多媒体视频内容保护最佳实践
  19. 5G独立组网(SA)和 非独立组网(NSA)
  20. 【渝粤教育】电大中专计算机职业素养 (9)作业 题库

热门文章

  1. 生信高性能服务器,【玩转腾讯云】使用云服务器进行生信数据分析
  2. java生成word 框勾_Java根据word模板生成word文档之设计详细思路—word标签定义 | 学步园...
  3. AD19快速制作多管脚元件符号
  4. 用pc抓取vlan tag数据包
  5. ArcGIS中裁剪(clip)出现000117错误的解决办法
  6. 计算机应用与基础app,手机APP支持下《计算机应用基础》课程探究性学习活动设计与实验研究...
  7. 上顿号符号_顿号在键盘上怎么打?每日一答
  8. 双稳态电路的两个稳定状态是什么_555定时器原理知多少?四种应用电路分享
  9. 计算机专业如何发表论文,如何发表一篇计算机研究生论文
  10. Axure RP9使用指南