以时间(从后台读取,设置刷新的时间间隔)为横坐标的折线图,附带饼图的实现

本文主要是介绍以时间(从后台读取,设置刷新的时间间隔)为横坐标的折线图,附带饼图的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

1. 使用插件 Chart.js 下载地址:https://github.com/chartjs/Chart.js/blob/master/LICENSE.md

2. JS实现(需要根据后台数据进行解析)

$.ajax({type: "POST",cache: false,dataType: "json",url: g_pageName,data: {"code": "OPHS_24h_Bl_stat"},success: function (data) {var json = eval(data); //数组// 生成表格数据function randomBar(date, y1) {return {t: date.valueOf(),y: y1};}var dateFormat = 'YYYY-MM-DD HH:mm:ss';var date = moment(json[0][0], dateFormat);var likesd = [randomBar(date, json[1][0])];var likesf = [randomBar(date, json[2][0])];var likesr = [randomBar(date, json[3][0])];var likess = [randomBar(date, json[4][0])];var likesp = [randomBar(date, json[5][0])];var likesy = [randomBar(date, json[6][0])];var labels = [date];for(var j=1; j<json[0].length-1; j++) {date = date.clone().add(1, 'hour');likesd.push(randomBar(date, json[1][j]));likesf.push(randomBar(date, json[2][j]));likesr.push(randomBar(date, json[3][j]));likess.push(randomBar(date, json[4][j]));likesp.push(randomBar(date, json[5][j]));likesy.push(randomBar(date, json[6][j]));labels.push(date);}var cfg = {labels: labels,type: 'line',datasets: [{label: '目录告警',data: likesd,type: 'line',borderColor: window.chartColors.yellow,backgroundColor: window.chartColors.yellow,pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}, {label: '文件告警',data: likesf,type: 'line',borderColor: window.chartColors.blue,backgroundColor: window.chartColors.blue,pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}, {label: '注册表告警',data: likesr,type: 'line',borderColor: window.chartColors.green,backgroundColor: window.chartColors.green,pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}, {label: '服务告警',data: likess,type: 'line',borderColor: '#669999',backgroundColor: '#669999',pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}, {label: '进程告警',data: likesp,type: 'line',borderColor: '#99cccc',backgroundColor: '#99cccc',pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}, {label: '系统防篡改告警',data: likesy,type: 'line',borderColor: '#4A708B',backgroundColor: '#4A708B',pointRadius: 1,fill: false,lineTension: 0.5,borderWidth: 1}]};// var chart = new Chart(ctx, cfg);var ctx = document.getElementById('doChart1').getContext('2d');ctx.canvas.width = 1000;ctx.canvas.height = 350;window.myLine = Chart.Line(ctx, {data: cfg,options: {animation: false,responsive: true,hoverMode: 'index',stacked: false,legend: {display: true,position: 'right',labels: {boxWidth: 13,}},/*title: {display: true,text: '过去24小时告警'},*/scales: {xAxes: [{scaleLabel: {display: true,labelString: '时间'},type: 'time',time: {displayFormats: {minute: 'DD'+'日'+'HH'+'点',},tooltipFormat: 'YYYY'+'年'+'MM'+'月'+'DD'+'日'+'HH'+'点',},distribution: 'series',ticks: {source: 'labels'}}],yAxes: [{scaleLabel: {display: true,labelString: '告警次数'},type: 'linear', //only linear but allow scale type registration. This allows extensions to exist solely for log scale for instancedisplay: true,gridLines: {opacity: 0.5,lineWidth: 0.5},}],}}});},error: function(xhr, errmsg, err) {console.log(xhr.status + ": " + xhr.responseText);}});

 

 

这篇关于以时间(从后台读取,设置刷新的时间间隔)为横坐标的折线图,附带饼图的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729138

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

Java中Map的五种遍历方式实现与对比

《Java中Map的五种遍历方式实现与对比》其实Map遍历藏着多种玩法,有的优雅简洁,有的性能拉满,今天咱们盘一盘这些进阶偏基础的遍历方式,告别重复又臃肿的代码,感兴趣的小伙伴可以了解下... 目录一、先搞懂:Map遍历的核心目标二、几种遍历方式的对比1. 传统EntrySet遍历(最通用)2. Lambd

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

基于SpringBoot实现分布式锁的三种方法

《基于SpringBoot实现分布式锁的三种方法》这篇文章主要为大家详细介绍了基于SpringBoot实现分布式锁的三种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、基于Redis原生命令实现分布式锁1. 基础版Redis分布式锁2. 可重入锁实现二、使用Redisso

SpringBoo WebFlux+MongoDB实现非阻塞API过程

《SpringBooWebFlux+MongoDB实现非阻塞API过程》本文介绍了如何使用SpringBootWebFlux和MongoDB实现非阻塞API,通过响应式编程提高系统的吞吐量和响应性能... 目录一、引言二、响应式编程基础2.1 响应式编程概念2.2 响应式编程的优势2.3 响应式编程相关技术

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

Nginx更新SSL证书的实现步骤

《Nginx更新SSL证书的实现步骤》本文主要介绍了Nginx更新SSL证书的实现步骤,包括下载新证书、备份旧证书、配置新证书、验证配置及遇到问题时的解决方法,感兴趣的了解一下... 目录1 下载最新的SSL证书文件2 备份旧的SSL证书文件3 配置新证书4 验证配置5 遇到的http://www.cppc