功率因数cosφ仪表盘
一、截图
二、说明
本篇博客主要是有三个亮点:
① 刻度标注在仪表盘标线外
② 仪表盘存在两个刻度值,分别是(正)0.5~1 和(负)-1~-0.5
③ 仪表盘内标注,分别是“超前”和“滞后”
三、代码
html代码
<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;" >
<p style="padding: 3px 10px;color: #8cc5fe;">{{title}}</p>
<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>
</nz-card>
ts代码
import { Component, OnInit, Input, SimpleChanges } from '@angular/core';
import * as echarts from 'echarts';
import { EChartOption } from 'echarts'; @Component({
selector: 'app-powerfactor',
templateUrl: './powerfactor.component.html',
styleUrls: ['./powerfactor.component.css']
})
export class PowerfactorComponent implements OnInit { @Input() title;
@Input() newpower ;
@Input() min;
@Input() max;
@Input() splitNumber;
public option1:EChartOption ;
constructor() {
} ngOnInit() { this.setPowerData();
} ngOnChanges(changes: SimpleChanges): void {
if(parseFloat(this.newpower) >0.5){
this.newpower = -this.newpower;
}else{
//Do-nothing
}
this.setPowerData();
} //处理功率因数数据
producePowerData(sign){
const _self=this;
if((sign == 0) && (_self.newpower) && (parseFloat(_self.newpower)<0 )){
return _self.newpower;
}else if((sign == 1) && (_self.newpower) && (parseFloat(_self.newpower)>0 )){
return _self.newpower;
}else{
return 0;
}
} //处理显示指针
producePowerPointer(sign){
//sign,0代表'滞后',1代表'超前'
const _self = this;
if((sign == 0) && (parseFloat(_self.newpower) < 0)){
return true;
}else if((sign == 1) && (parseFloat(_self.newpower) > 0)){
return true;
}else{
return false;
}
} //绘图函数
setPowerData(){
let powerdata = 0;
if("--" == this.newpower){
powerdata = 0;
}else{
powerdata = this.newpower;
} this.option1 = {
series: [
//滞后表盘样式
{
type: "gauge",
center:["35%", "45%"], // 仪表位置 ,左右,上下
radius: "54%", //仪表大小
startAngle: -270, //开始角度
endAngle: -360, //结束角度
min:-1,
max:-0.5,
splitNumber:5,
axisLine: {
show: true,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.02,'#f68d26'], // 100% 处的颜色
[1, '#3838d2'],
],
width: 12
}, },
splitLine: {
show: true,
lineStyle:{
opacity :0,
}
},
axisTick: {
show: false
},
axisLabel: {
show: true,
distance: -20,
color: '#333',
formatter: function(v){
switch (v+''){
case '-0.5': return '';
case '-0.6': return '';
case '-0.7': return '滞后';
case '-0.8': return '';
case '-0.9': return '';
case '1': return '';
default: return '';
}
}, },
itemStyle :{
color :'black'
},
pointer : { //指针样式
show:false,
length: '80%',
width :10,
itemStyle :{
color :'black'
} },
detail: {
show: false
}
},
//超前表盘样式
{
type: "gauge",
center:["35%", "45%"], // 仪表位置 ,左右,上下
radius: "54%", //仪表大小
startAngle: -180, //开始角度
endAngle: -270, //结束角度
min:0.5,
max:1,
splitNumber:5,
axisLine: {
show: true,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.98,'#22a0f3'], // 100% 处的颜色
[1, '#f68d26'],
],
width: 12, }, },
splitLine: {
show: true,
lineStyle:{
opacity :0,
}
},
axisTick: {
show: false
},
axisLabel: {
show: true,
distance: -20,
color: '#22a0f3',
formatter: function(v){
switch (v+''){
case '0.5': return '';
case '0.6': return '';
case '0.7': return '超前';
case '0.8': return '';
case '0.9': return '';
case '1': return '';
default: return '';
}
}, },
itemStyle :{
color :'black'
},
pointer : { //指针样式
show:false,
length: '80%',
width :10,
itemStyle :{
color :'black'
} },
detail: {
show: false
}
},
{
type : "gauge",
center:["35%", "45%"], // 默认全局居中
radius : "86%",
startAngle: -270, //开始角度
endAngle: -360, //结束角度
min:-1,
max:-0.5,
splitNumber:5,
axisLine : {
show : false,
lineStyle : {
color:[ [0.02,'#f68d26'],[1,'#3740d5']],
width : 0
}
},
splitLine : {
show:false,
length : 30,
lineStyle : {
width : 2
}
},
axisTick : { //刻度线样式(及短线样式)
length : 20,
show:false,
},
axisLabel : { //文字样式(及“10”、“20”等文字样式)
color : "#405a74",
distance : -26, //文字离表盘的距离
fontSize:12,
formatter: function(v){
switch (v+''){
case '-0.5': return '0.5';
case '-0.6': return '';
case '-0.7': return '0.7';
case '-0.8': return '';
case '-0.9': return '0.9';
case '-1': return '1';
default: return '';
}
}, },
itemStyle :{
color :'#13b4eb'
},
pointer : { //指针样式
show: this.producePowerPointer(0),
length: '36%',
width :4, },
detail: {
show:this.producePowerPointer(0),
formatter:'{value}',
offsetCenter: [0, "36%"],
height:30,
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: '#13b4eb',
fontSize : 26
},
},
data: [{
value:this.producePowerData(0),
// value: this.produceNegativePowerData(),
label: {
textStyle: {
fontSize: 12
}
}
}]
}, {
type : "gauge",
center:["35%", "45%"], // 默认全局居中
radius : "86%",
startAngle: -180, //开始角度
endAngle: -270, //结束角度
min:0.5,
max:1,
splitNumber:5,
axisLine : {
show : false,
lineStyle : { // 属性lineStyle控制线条样式
color:[ [0.98,'#3740d5'],[1,'#f68d26']],
width : 0//表盘宽度
}
},
splitLine : { //分割线样式(及10、20等长线样式)
show:false,
length : 30,
lineStyle : { // 属性lineStyle控制线条样式
width : 2
}
},
axisTick : { //刻度线样式(及短线样式)
length : 20,
show:false,
},
axisLabel : { //文字样式(及“10”、“20”等文字样式)
color : "#405a74",
distance : -26, //文字离表盘的距离
fontSize:12,
formatter: function(v){
switch (v+''){
case '0.5': return '0.5';
case '0.6': return '';
case '0.7': return '0.7';
case '0.8': return '';
case '0.9': return '0.9';
case '1': return '1';
default: return '';
}
}, },
itemStyle :{
color :'#13b4eb',
fontSize:12
},
pointer : { //指针样式
show:this.producePowerPointer(1),
length: '36%',
width :4, },
detail: {
show:this.producePowerPointer(1),
formatter:'{value}',
offsetCenter: [0, "36%"],
height:30,
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: '#13b4eb',
fontSize : 26
},
},
data: [{
value:this.producePowerData(1),
label: {
textStyle: {
fontSize: 12
}
}
}]
}
]
};
} //处理颜色百分比方法
processColorPercent(){
const _self = this;
if(_self.newpower && _self.max){
let c_percent = _self.newpower/_self.max;
return c_percent;
}else{
let c_percent = 0;
return c_percent;
}
} }
功率因数cosφ仪表盘的更多相关文章
- 交流绕组 & 感应电机
交流绕组 1. 为什么整距线圈产生的电动势最大? 整距时, 一个线圈的两根有效导体边之间相差180电角度, 线圈的节距因数为1, 线圈产生的电动势为单根导体边产生电动势的2倍, 为最大 2. 三相交流 ...
- IOS自定义仪表盘
登录|注册 周海锋 的专栏 Objective-C/Cocos2d/Cocos2d-x/Php/JS 目录视图 摘要视图 订阅 2016软考项目经理实战班 学院周年礼-顶 ...
- WPF自定义控件(1)——仪表盘设计[1]
0.小叙闲言 又接手一个新的项目了,再来一次上位机开发.网上有很多控件库,做仪表盘(gauge)的也不少,功能也很强大,但是个人觉得库很臃肿,自己就计划动手来写一个控件库,一是为学习,二是为了项目.下 ...
- [ucgui] 仪表盘函数
/* 仪表盘 */ void DrawArcScale(void) { ; ; int i; ]; GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetPen ...
- C# GDI绘制仪表盘(纯代码实现)
纯代码实现GDI绘制仪表盘,效果在代码下面. public partial class HalfDashboardUc : UserControl { /// <summary> /// ...
- 数学还勉强管用,用代码还能画个canvas 仪表盘(含完整代码)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 没事用html5 canvas画一个仪表盘自用,自适应的哦
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C++制作电压表电流表仪表盘(vs2008)
Meter类 Meter.h #if !defined(AFX_METER_H__D5802279_6502_4453_BE21_58604877AD39__INCLUDED_) #define AF ...
- canvas仿芝麻信用分仪表盘
这是一个仿支付宝芝麻信用分的一个canvas,其实就是一个动画仪表盘. 首先, 上原图: 这个是在下支付宝上的截图,分低各位见笑了.然后看下我用canvas实现的效果图: <canvas id= ...
随机推荐
- Django View 进阶
返回404 from django.http import HttpResponse, HttpResponseNotFound def not_found(request): ) 或 return ...
- Navie level questions
1. Binary Tree Maximum Node Find the maximum node in a binary tree,return the node. public class Max ...
- vmware平台下两次网络不通的诡异事件
首先表明以下两种情况确实很少见,也可以说确实非常奇怪,无法定位原因由于机缘巧合确实出现了,虽然本文没有找到根因,但是希望能帮遇到类似问题的同学一点思绪. RouteOS内网网卡不可用 首先强调 ...
- ASP.NET MVC下使用AngularJs语言(七):Cookie的使用
网站开发,使用Cookie对暂存数据进行读写,可以使用C#,javascript,jQuery,也可以使用angularjs等等来读写...... 本篇实现angularjs环境之下对Cookie时行 ...
- Thinking in Java Chapter 13
From Thinking in Java 4th Edition String对象是不可变的.String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包 ...
- Javascript高级编程学习笔记(4)—— JS中的数据类型(2)
接着昨天的文章,今天这篇文章主要讲述JS中剩余的两种数据类型String,和Object String类型 对于该类型,书中给出的解释为:由0或多个16为Unicode字符组成的字符序列. 对于JS中 ...
- 小鬼难缠--python小bug备忘
今天编译pyhon做人脸识别,遇到几个问题,做个记录吧. 编译报错: File "harrClassifier.py", line 17, in <module> fl ...
- c++编程之内存的分配
当我们在进行编程时,特别是使用c++语言进行编程时,需要知道内存有几个内存区可供我们使用,因为c++可以直接操作内存.接下让我们来看看内存中的几大内存区. 1.栈区 栈区(stack)是速度最快的一个 ...
- win10 store 无法连接网络(原创)
当你试过所有的解决攻略 都无效时,那么使用这个教程 关闭以下的蓝色框里的
- Centos 7 安装 rabbitmq
1.安装erlang rabbitmq 官方下载地址 "http://www.rabbitmq.com/download.html" ,选择"RHEL, CentOS, ...