Charts & canvas

RGBA color


let stopFlag = 0; // show Charts
const showCharts = (name = "") => {
let ctxCPU = document.querySelector(`#cpuChart`).getContext("2d"),
ctxMemory = document.querySelector(`#memoryChart`).getContext("2d");
// Global point options
Chart.defaults.global.elements.point.pointStyle = "circle";
Chart.defaults.global.elements.point.radius = 0;
// init data
// let cpuData = [0.3],
// memoryData = [99.5],
let cpuData = [null],
memoryData = [null],
labels = [" "];
cpuData = repeatArray(cpuData, 60);
memoryData = repeatArray(memoryData, 60);
labels = repeatArray(labels, 60);
let cpuChart = new Chart(ctxCPU, {
// type: "bar ",
type: "line",
data: {
labels: labels,
datasets: [
{
label: "CPU 使用记录",
data: cpuData,
backgroundColor: [
"rgba(241, 246, 250, 0.8)",
],
borderColor: [
"rgba(83, 161, 206, 1)",
],
borderWidth: 1,
fill: "start",
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
// suggestedMax: 1,
suggestedMin: 0.1,
// beginAtZero: true,
callback: function(tick) {
return tick.toString() + "%";
},
}
}]
},
elements: {
line: {
tension: 0,
// no smooth
}
}
}
});
let memoryChart = new Chart(ctxMemory, {
// type: "bar ",
type: "line",
data: {
labels: labels,
datasets: [
{
label: "Memory 使用记录",
data: memoryData,
backgroundColor: [
"rgba(244, 242, 244, 0.8)",
],
borderColor: [
"rgba(164, 73, 190, 1)",// RGBA
// "rgba(0, 127, 53, 1)",// green
// "rgba(149, 40, 180, 1)",
],
borderWidth: 1,
fill: "start",
}
]
},
options: {
scales: {
yAxes: [{
ticks: {
// min: 99,
// max: 100,
// stepSize: 0.000001,
// beginAtZero: false,
// suggestedMax: 100,
callback: function(tick) {
return tick.toString() + "%";
},
}
}]
},
elements: {
line: {
tension: 0,
// no smooth
}
}
}
});
// update
let swalFlag = true;
// console.log(`old stopFlag =`, stopFlag);
stopFlag = setInterval(() => {
showDetails(name).then((json) => {
if (json.success) {
let {
osName,
date,
// totalMemory,
// freeMemory,
cpuRatio,
memoryRatio
} = json.data;
let tds = [...document.querySelectorAll(`[data-info="server"]`)];
for (let i = 0; i < tds.length; i++) {
tds[i].innerHTML = "";
let value = "暂无数据";
switch (i) {
case 0:
value = osName;
break;
case 1:
value = date;
break;
default:
break;
}
tds[i].innerHTML = value;
}
let cpu = cpuRatio,
memory = memoryRatio;
if (cpuData.length > 59) {
cpuData.push(cpu);
let newData = cpu,
oldData = [];
oldData = cpuData.slice(cpuData.length - 59, cpuData.length);
oldData.push(newData);
cpuData = oldData;
// console.log(`cpuData =\n`, cpuData);
cpuChart.data.datasets[0].data = cpuData;
// Preventing Animations
cpuChart.update(0);
} else {
cpuData.push(cpu);
cpuChart.data.datasets[0].data = cpuData;
cpuChart.update(0);
}
if (memoryData.length > 59) {
memoryData.push(memory);
let newData = memory,
oldData = [];
oldData = memoryData.slice(memoryData.length - 59, memoryData.length);
oldData.push(newData);
memoryData = oldData;
memoryChart.data.datasets[0].data = memoryData;
memoryChart.update(0);
} else {
memoryData.push(memory);
memoryChart.data.datasets[0].data = memoryData;
memoryChart.update(0);
}
} else {
if (swalFlag) {
swal({
title: "查看详情失败!",
text: `${json.message !== null ? json.message : "3 秒后自动关闭!"}`,
icon: "error",
// button: "关闭",
buttons: false,
timer: 3000,
});
swalFlag = false;
}
// clear
window.clearInterval(stopFlag);
}
});
}, 1000);
// console.log(`new stopFlag =`, stopFlag);
};

Charts & canvas & RGBA的更多相关文章

  1. Matplotlib数据可视化(7):图片展示与保存

    In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as ...

  2. Bring Your Charts to Life with HTML5 Canvas and JavaScript

    Bring Your Charts to Life with HTML5 Canvas and JavaScript Bring Your Charts to Life with HTML5 Canv ...

  3. Safari HTML5 Canvas Guide: Creating Charts and Graphs

    Safari HTML5 Canvas Guide: Creating Charts and Graphs Bar graphs are similar to data plots, but each ...

  4. 时隔两个月再写的Echarts(Enterprise Charts,商业级数据图表)一文

    简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...

  5. 提高HTML5 canvas性能的几种方法

    简介 HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2Dimmediate mode graphic)的标准.许多开发者现在利 ...

  6. canvas图表详解系列(1):柱状图

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  7. canvas图表详解系列(2):折线图

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  8. canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  9. canvas图表详解系列(4):动态散点图

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

随机推荐

  1. node.js启动调试方式

    node.js启动调试方式(nodeJs不能像js一样在控制台调试) 以express项目为例,启动路径是localhost:3000 一.通过node命令启动 node server/bin/www ...

  2. oracle中的预定异常和自定义异常

    预定异常 oracle中的预定异常情况大约有24个,对于这种异常情况的处理,无须再程序中定义,可用oracle自动引发,常见的预定异常如下 异常 说明 ACCESS_INTO_NULL 在未初始化对象 ...

  3. Python文件IO(普通文件读写)

    ## 打开一个文件 - fileobj = open(filename, mode) 其中: fileobj是open()返回的文件对象 filename是该文件的字符串名 mode是指明文件类型和操 ...

  4. Python变量、赋值及作用域

    ## 变量 - 指向唯一内存地址的一个名字 - 目的是为了更方便地引用内存中的值 - 可以使用id(变量)函数来查看变量的唯一id值,若两者id值相同,则表示两个变量指向同一地址,两个变量的值完全相同 ...

  5. thinkPHP5.0 save和saveAll,新增和更新的问题

    今天遇到一个问题,在模型中使用save保存数据之后,使用saveAll继续新增数据,结果报 缺少更新条件,网上搜了下发现一篇文章https://www.jianshu.com/p/1848f61de6 ...

  6. mysql的一些相关的命令(2013-05-05-bd 写的日志迁移

    cmd中连接:mysql -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) --建立数据库creata database 数据库名;--切换到数据库下工 ...

  7. Ubuntu下安装libpcap+测试安装

    1.从ftp://ftp.gnu.org/gnu/下载flex.bison.GNU M4.libpcap安装包,具体的链接分别如下: flex下载:http://flex.sourceforge.ne ...

  8. Java基础——对象和类

    将包含main方法的类称为主类. 变量的作用域是指变量可以在程序中引用的范围. 实例变量和静态变量的作用域是整个类,无论变量是在哪里声明的. 局部变量的声明和使用都在一个方法的内部. 一个类的实例变量 ...

  9. 裸机——I2C 2

    前面的随笔完成了I2C时序分析(不涉及仲裁) 现在可以学使用控制器的I2C了. 1.先回顾I2C的基础知识 (1)总线包括SCL + SDA. (2)通信的特点: 同步,串行,电平 所以决定了 I2C ...

  10. POJ 1854 贪心(分治)

    Evil Straw Warts Live Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1144   Accepted:  ...