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绘制各种图表,详细分解步 ...
随机推荐
- MySQL事务隔离级别 解决并发问题
MySQL事务隔离级别 1. 脏读: 骗钱的手段, 两个窗口或线程分别调用数据库转账表,转账后未提交,对方查看到账后,rollback,实际钱没转. 演示方法: mysql默认的事务隔离级别为repe ...
- java面试题:已知一个数组[2,4,6,2,1,5],将该数组进行排序(降序,不能用工具类进行排序),创建两条线程交替输出排序后的数组,线程名自定义
package com.swift; import java.util.Arrays; import java.util.Comparator; public class ArrayThread_Te ...
- 变量类型 ROWID 和 UROWID
ROWID: ROWID为该表行的唯一标识,是一个伪列,这个伪列可以用SELECT查看,但是不可以用INSERT, UPDATE来修改,不可以用DELETE来删除. UROWID: ROWID可 ...
- v-if
vue中通过v-if,v-else-if,v-else的对应的Boolean值来操作元素在dom中是否移除. 这里就以单纯的true,false来模拟一下.注:标签属性去出来的值为string类型. ...
- js一键复制到剪切板
<div id='demo'>我就是被复制的内容<span>点击复制<span></div> $('#demo').on('click','span', ...
- 提高篇(1):RMQ问题与ST表
RMQ是英文Range Minimum/Maximum Query的缩写,是询问某个区间内的最值,这里讲一种解法:ST算法 ST算法通常用在要多次(10^6级别)询问区间最值的问题中,相比于线段树,它 ...
- BDC备忘
更新模式,有下列可选值(更新模式常用的是S) "A" 异步更新.被调用程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的方式执行. 也 ...
- python基础数据类型之列表,元组操作
一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...
- ayui弹出层闪退,layer弹出层闪退,layer弹出层坑
今天用layui的弹出层插件,发现两奇怪的问题: 1.弹窗打开事件还未绑定到任何按钮,可是点击form表单中的按钮可以打开我定义的弹出层 2.绑定弹出层到按钮,打开弹窗闪退 后面发现真如参考博文所说: ...
- The Extinction of Some Languages【一些语言的消失】
The Extinction of Some Languages Languages have been coming and going for thousands of years, 语言的产生和 ...