Charts & canvas & RGBA
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的更多相关文章
- Matplotlib数据可视化(7):图片展示与保存
In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as ...
- 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 ...
- 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 ...
- 时隔两个月再写的Echarts(Enterprise Charts,商业级数据图表)一文
简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...
- 提高HTML5 canvas性能的几种方法
简介 HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2Dimmediate mode graphic)的标准.许多开发者现在利 ...
- canvas图表详解系列(1):柱状图
本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...
- canvas图表详解系列(2):折线图
本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...
- canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)
本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...
- canvas图表详解系列(4):动态散点图
本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...
随机推荐
- ES6初识-模块化
export let A=123; export function test(){ console.log('test'); } export class Hello(){ test(){ conso ...
- JQuery实现层级菜单
效果图: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- glibc2.12升级至2.15
1.操作系统版本 [root@localhost ~]# cat /etc/redhat-release #CentOS release 6.9 (Final) 2.当前glibc版本 [root@l ...
- C++ Primer 学习笔记_Chapter4 数组和指针–指针
一.什么是指针? 指针与迭代器一样,指针提供对其所指对象的间接访问,指针保存的是另一个对象的地址: string s("hello"); string *ps = &s; ...
- 43_2.VUE学习之--不使用组件computed计算属性超简单的实现美团购物车原理
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- form submit 的callback方法
参考:http://hayageek.com/jquery-ajax-form-submit/ form的submit方法返回数据处理. 普通的form: $("#ajaxform" ...
- #Python编程从入门到实践#第四章笔记
#Python编程从入门到实践#第四章笔记 操作列表 1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...
- spark stream简介
1.复杂的迭代计算 假如我们计算的需要100步的计算,但是当我执行到第99步的时候,突然数据消失, 根据血统,从头进行恢复,代价很高 sc.setCheckpointDir("共享存储文件系 ...
- C# Dictionary的遍历理解
C# Dictionary容器类的理解 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/det ...
- EVALUation mode running with code size limit:2k keil进行仿真过程中出现的报错
EVALUation mode running with code size limit:2k 如果keil软件未破解,会限制程序的存储大小.第一是你的软件没有破解,不能编译2K以上的程序:这种情况下 ...