Charts & canvas

RGBA color


  1. let stopFlag = 0;
  2. // show Charts
  3. const showCharts = (name = "") => {
  4. let ctxCPU = document.querySelector(`#cpuChart`).getContext("2d"),
  5. ctxMemory = document.querySelector(`#memoryChart`).getContext("2d");
  6. // Global point options
  7. Chart.defaults.global.elements.point.pointStyle = "circle";
  8. Chart.defaults.global.elements.point.radius = 0;
  9. // init data
  10. // let cpuData = [0.3],
  11. // memoryData = [99.5],
  12. let cpuData = [null],
  13. memoryData = [null],
  14. labels = [" "];
  15. cpuData = repeatArray(cpuData, 60);
  16. memoryData = repeatArray(memoryData, 60);
  17. labels = repeatArray(labels, 60);
  18. let cpuChart = new Chart(ctxCPU, {
  19. // type: "bar ",
  20. type: "line",
  21. data: {
  22. labels: labels,
  23. datasets: [
  24. {
  25. label: "CPU 使用记录",
  26. data: cpuData,
  27. backgroundColor: [
  28. "rgba(241, 246, 250, 0.8)",
  29. ],
  30. borderColor: [
  31. "rgba(83, 161, 206, 1)",
  32. ],
  33. borderWidth: 1,
  34. fill: "start",
  35. }
  36. ]
  37. },
  38. options: {
  39. scales: {
  40. yAxes: [{
  41. ticks: {
  42. // suggestedMax: 1,
  43. suggestedMin: 0.1,
  44. // beginAtZero: true,
  45. callback: function(tick) {
  46. return tick.toString() + "%";
  47. },
  48. }
  49. }]
  50. },
  51. elements: {
  52. line: {
  53. tension: 0,
  54. // no smooth
  55. }
  56. }
  57. }
  58. });
  59. let memoryChart = new Chart(ctxMemory, {
  60. // type: "bar ",
  61. type: "line",
  62. data: {
  63. labels: labels,
  64. datasets: [
  65. {
  66. label: "Memory 使用记录",
  67. data: memoryData,
  68. backgroundColor: [
  69. "rgba(244, 242, 244, 0.8)",
  70. ],
  71. borderColor: [
  72. "rgba(164, 73, 190, 1)",// RGBA
  73. // "rgba(0, 127, 53, 1)",// green
  74. // "rgba(149, 40, 180, 1)",
  75. ],
  76. borderWidth: 1,
  77. fill: "start",
  78. }
  79. ]
  80. },
  81. options: {
  82. scales: {
  83. yAxes: [{
  84. ticks: {
  85. // min: 99,
  86. // max: 100,
  87. // stepSize: 0.000001,
  88. // beginAtZero: false,
  89. // suggestedMax: 100,
  90. callback: function(tick) {
  91. return tick.toString() + "%";
  92. },
  93. }
  94. }]
  95. },
  96. elements: {
  97. line: {
  98. tension: 0,
  99. // no smooth
  100. }
  101. }
  102. }
  103. });
  104. // update
  105. let swalFlag = true;
  106. // console.log(`old stopFlag =`, stopFlag);
  107. stopFlag = setInterval(() => {
  108. showDetails(name).then((json) => {
  109. if (json.success) {
  110. let {
  111. osName,
  112. date,
  113. // totalMemory,
  114. // freeMemory,
  115. cpuRatio,
  116. memoryRatio
  117. } = json.data;
  118. let tds = [...document.querySelectorAll(`[data-info="server"]`)];
  119. for (let i = 0; i < tds.length; i++) {
  120. tds[i].innerHTML = "";
  121. let value = "暂无数据";
  122. switch (i) {
  123. case 0:
  124. value = osName;
  125. break;
  126. case 1:
  127. value = date;
  128. break;
  129. default:
  130. break;
  131. }
  132. tds[i].innerHTML = value;
  133. }
  134. let cpu = cpuRatio,
  135. memory = memoryRatio;
  136. if (cpuData.length > 59) {
  137. cpuData.push(cpu);
  138. let newData = cpu,
  139. oldData = [];
  140. oldData = cpuData.slice(cpuData.length - 59, cpuData.length);
  141. oldData.push(newData);
  142. cpuData = oldData;
  143. // console.log(`cpuData =\n`, cpuData);
  144. cpuChart.data.datasets[0].data = cpuData;
  145. // Preventing Animations
  146. cpuChart.update(0);
  147. } else {
  148. cpuData.push(cpu);
  149. cpuChart.data.datasets[0].data = cpuData;
  150. cpuChart.update(0);
  151. }
  152. if (memoryData.length > 59) {
  153. memoryData.push(memory);
  154. let newData = memory,
  155. oldData = [];
  156. oldData = memoryData.slice(memoryData.length - 59, memoryData.length);
  157. oldData.push(newData);
  158. memoryData = oldData;
  159. memoryChart.data.datasets[0].data = memoryData;
  160. memoryChart.update(0);
  161. } else {
  162. memoryData.push(memory);
  163. memoryChart.data.datasets[0].data = memoryData;
  164. memoryChart.update(0);
  165. }
  166. } else {
  167. if (swalFlag) {
  168. swal({
  169. title: "查看详情失败!",
  170. text: `${json.message !== null ? json.message : "3 秒后自动关闭!"}`,
  171. icon: "error",
  172. // button: "关闭",
  173. buttons: false,
  174. timer: 3000,
  175. });
  176. swalFlag = false;
  177. }
  178. // clear
  179. window.clearInterval(stopFlag);
  180. }
  181. });
  182. }, 1000);
  183. // console.log(`new stopFlag =`, stopFlag);
  184. };

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. 清除ie10+浏览器的input输入框后面会出现的x号和闭眼logo

    x号:::-ms-clear{display:none;} 闭眼logo: ::-ms-reveal{display:none;} tips:如果在外部引用的css里面没有作用,可以在写本页面的< ...

  2. 前端HTML基础

    1.0开发工具介绍 sublime的使用技巧链接 HTML特殊符号表 1.1 html概念 超文本标记语言(Hypertext Markup Language),属于一种描述性的标记语言(markup ...

  3. 学习JavaScript一些资料时,记录一些规范小记

    最近工作不是很忙,所以再深入学学JavaScript,顺便提升一下自己,嘿嘿!主要记录一下学习到的一下编写代码的规范小记吧! 1.声明变量时一定带上var,避免一些错误发生,如变量提升时遇见的问题发生 ...

  4. Java分享笔记:FileOutputStream流的write方法

    /*------------------------ FileOutputStream: ....//输出流,字节流 ....//write(byte[] b)方法: 将b.length个字节从指定字 ...

  5. 采坑笔记——mysql的order by和limit排序问题

    背景说明 今天写出一个十分弱智的bug,记录一下,提醒自己以后别这种犯错,不怕丢人哈~ 在写一个分页查询记录的sql时,要根据添加的时间逆序分页输出,之前的写法是酱紫 select record.a, ...

  6. Android和IOS网页不一致汇总

    1.input type=text 内容输入框的不一致,ios会默认给输入框添加自己的样式,导致在横向的输入框长度精准控制的时候,ios的输入框一般都比android上要长一点,还有内部阴影 解决此问 ...

  7. python__基础 : 异常处理与自定义异常

    异常处理方法一般为: try: ------code----- except Exception as e: # 抛出异常之后将会执行 print(e) else: # 没有异常将会执行 print( ...

  8. 特殊sql查询方法实例

    一.if条件查询:SELECT sum(if(is_buy > 0 ,1,0)) AS friend_count_all_cj, sum(if(is_buy = 0 ,1,0)) AS frie ...

  9. 开始体验第一个JAVA程序吧!

    一.准备工作(配置环境) 1.安装JAVA开发工具(JDK) a.下载符合自己电脑系统的Java开发软件:http://www.oracle.com/technetwork/java/javase/d ...

  10. python中的文件操作小结2

    ''' #-----------文件修改---------- f=open("test_1",'r',encoding="utf-8") f2=open(&qu ...