使用Google Chart API 创建实时图表

 

实时图表可以实时显示数据。这意味着数据将永久更新以始终显示当前图表。要创建实时图表,我们使用JavaScript和Google Chart API。

这些实时图表通常用于仪表板中,以显示例如温度或价格的变化情况。应用领域多样,它们看起来确实不错。你自己看!

实时图表–折线图

我在这里向您展示,您可以创建此实时图表。它每250毫秒更新一次,并显示(在我们的示例中)随机数据。在生产性使用中,它可以从数据库或直接从传感器读取和显示数据。

那不是全部。可以将相同的概念1:1转移到其他图表中,其中包括:

  • 地理图
  • 条形图
  • 折线图
  • 饼形图
  • 甜甜圈图
  • 时间线
  • 所有可能的图形列表

Google Chart API –简短介绍

在谷歌图表API是一个免费的谷歌服务,使我们能够展示我们的网站或网络应用程序的各种图表和图形。

此外,图表还为用户提供了交互功能。例如,悬停时可以显示带有当前元素值的弹出窗口。

数据静态显示。但是我们围绕它开发我们自己的系统,以便可以在一定间隔内更新数据,从而获得实时图表。然后(实时)实时更新数据,并达到预期的效果。

1.嵌入Google Chart API

必须通过此脚本标记包括Google Chart API。这里无法在本地托管,因为Google的服务条款禁止这样做。

<script type="text/javascript" loading="lazy" src="https://www.gstatic.com/charts/loader.js"></script>

2.创建HTML容器

接下来我们需要一个简单的div。之后,Google API将图表绘制为SVG或VML。

<div id="chart_div"></div>

3.初始化和配置Google Chart API

在以下代码中,我们从Google Chart Packages中加载折线图软件包。然后我们将该函数drawChart()称为回调。该API将在完全加载后立即执行。

// load current chart package
google.charts.load("current", {packages: ["corechart", "line"]
});// set callback function when api loaded
google.charts.setOnLoadCallback(drawChart);

接下来,我们创建一个带有标签(未显示)和图表默认数据的对象。我们还需要一个带有选项的数组。在这里,我们设置标题和轴标签。

所有参数都可以在Google Chart文档中找到。

然后我们选择HTML容器并chart.draw(data, options)绘制图表。

function drawChart() {// create data object with default valuelet data = google.visualization.arrayToDataTable([["Year", "CPU Usage"],[0, 0]]);// create options object with titles, colors, etc.let options = {title: "CPU Usage",hAxis: {title: "Time"},vAxis: {title: "Usage"}};// draw chart on loadlet chart = new google.visualization.LineChart(document.getElementById("chart_div"));chart.draw(data, options);
}

使用前面的代码,现在已经绘制了表格,我们可以对其进行初步了解。

没有数据的简单折线图–使用Google Chart API创建

4.动态更新数据

现在我们来谈谈最重要的部分,即为什么要在这里-动态更新数据。这就是我们“创建”实时图表的方式。

我们以250ms的间隔将新数据插入到图表中。

该变量index用于将另一个元素作为行插入,没有其他含义。在此示例中,我生成随机数,应将其理解为CPU使用率。在这里,您必须在第5行中插入自己的数据。

您可以例如通过Ajax请求来执行此操作。因此,您可以使用PHP和数据库类直接从数据库中读取数据,也可以编写自己的RestAPI(例如,使用Node.js)。

let index = 0;
setInterval(function() {// instead of this random, you can make an ajax call for the current cpu usage or what ever data you want to displaylet random = Math.random() * 30 + 20;data.addRow([index, random]);chart.draw(data, options);index++;
}, 250);

现在在这里再次将完整代码放在一个文件中。为了清楚起见,我将所有内容打包到一个文件中。但是您应该将JavaScript和CSS放在其他文件中。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>Document</title><style>#chart_div {width: 1200px;}body {display: flex;justify-content: center;align-items: center;}</style>
</head><body><!-- CONTAINER FOR CHART --><div id="chart_div"></div><script type="text/javascript" loading="lazy" src="https://www.gstatic.com/charts/loader.js"></script><script>// load current chart packagegoogle.charts.load("current", {packages: ["corechart", "line"]});// set callback function when api loadedgoogle.charts.setOnLoadCallback(drawChart);function drawChart() {// create data object with default valuelet data = google.visualization.arrayToDataTable([["Year", "CPU Usage"],[0, 0]]);// create options object with titles, colors, etc.let options = {title: "CPU Usage",hAxis: {title: "Time"},vAxis: {title: "Usage"}};// draw chart on loadlet chart = new google.visualization.LineChart(document.getElementById("chart_div"));chart.draw(data, options);// interval for adding new data every 250mslet index = 0;setInterval(function() {// instead of this random, you can make an ajax call for the current cpu usage or what ever data you want to displaylet random = Math.random() * 30 + 20;data.addRow([index, random]);chart.draw(data, options);index++;}, 250);}</script>
</body></html>
扩大

结论

准备!在此示例中,我们将折线图作为实时图表,但是代码与其他图表类型的工作方式相同。您通常只需要调整optionsdata结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57677.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用ARCGIS实现图片与excel中坐标点的匹配并绘图

一、背景 本次的实验完成的是坐标点文件与图片的匹配&#xff0c;已有的数据分别是点的坐标excel文件以及区域图片&#xff0c;来实现区域的绘制。 二、步骤 1、首先将坐标点excel文件导入ARCGIS中进行展点&#xff0c;数据的格式如下&#xff1a; 2、点击ARCGIS界面中的文件…

chatgpt赋能Python-python_plot坐标轴

Python绘图库中坐标轴的设置 介绍 Python是一种简单易学&#xff0c;功能强大的编程语言。它被广泛用于数据科学和可视化领域。Python绘图库中的坐标轴设置可以让我们更好地展示数据&#xff0c;让我们更轻松地理解数据。本篇文章将介绍Python绘图库中坐标轴设置的方法和技巧…

Unity数据可视化图表插件XCharts(折线图、柱状图、饼图、雷达图、散点图、热力图、热力图、仪表盘、环形图、极坐标、水位图等等)

文章目录 一、前言二、Unity数据可视化图表插件&#xff1a;XCharts1、运行效果2、文档教程 三、结束语 一、前言 点关注不迷路&#xff0c;持续输出Unity干货文章。 嗨&#xff0c;大家好&#xff0c;我是新发。 今天&#xff0c;我在GitHub上看到一个屌炸天的Unity插件&…

pyecharts0.5.x制作含地图的数据看板

引言 pyecharts作为Python的数据可视化包&#xff0c;其强大的功能不言而喻&#xff0c;Python Echart&#xff0c;想想就觉得牛叉。目前pyecharts有两个大的版本&#xff0c;一个是0.5.x版本的&#xff0c;一个是1.0以后版本&#xff0c;而且这两个版本差别很大。如果是有的…

antv/g2图表tooltip自定义并展示坐标之外的数据

首先使用itemTpl自定义tooltip 效果是这样的tooltip展示坐标之外的数据 感觉Antv文档很不详细&#xff0c;写这块时找了好久才找到方法&#xff0c;现在记一下&#xff0c;方便今后的观看和其他遇到此问题的同学解决办法。 itemTpl this.chart.tooltip({showCrosshairs: true,…

pyecharts源码解读(13)图表类包charts之组合图表:直角坐标系(网格布局)Grid

当前pyecharts的版本为1.9.0。 概述 pyecharts/charts/composite_charts/包中的四个模块分别定义了组合图表类&#xff0c;其中pyecharts/charts/composite_charts/grid.py模块只定义了网格布局类Grid。 Grid类继承自图表基类Base&#xff0c;作用为在一个echarts实例中利用…

宇宙中大数字

1、高德纳箭头 2、葛力函数 如果脑子里面装一个葛里恒数&#xff0c;脑子就成了黑洞了。 后来人们研究出tree3

CCF-CSP 小中大 C语言

时间限制&#xff1a;0.1s 空间限制&#xff1a;512.0MB #include<stdio.h> int main() { int n,max,min,mid,midd,i; scanf("%d",&n); int a[n]; for(i0;i<n;i) {scanf("%d",&a[i]);} //输入 if(a[0]>a[n-1]){maxa[0];mina[n-1];} e…

redis中大Value问题的解决

我们日常在使用redis的时候, 有时会碰到大Value的问题, 超级大的一个Value存到redis中去, 这样其实不好, 我们可以把value进行压缩. 下面我们使用java自带的压缩, 对字符串进行压缩. /*** 使用gzip压缩字符串** param originString 要压缩的字符串* return 压缩后的字符串*/…

java中大素数生成算法

目前的公开密钥 算法大部分基于大整数分解、有限域上的离散对数问题和椭 圆曲线上的离散对数问题&#xff0c;这些数学难题的构建大部分都需 要生成一种超大的素数&#xff0c;尤其在经典的RSA算法中&#xff0c;生成的素数的质量对系统的安全性有很大的影响。 1.原理 费马小…

解决js中大数的问题

大数的理解: 就是由于数字太大了,然后js解析不了,不认识. 就比如实际生活中,在双11的时候,我们知道淘宝一夜之间总购买量肯定是一个很大很大的金额,当我们前端碰到一个非常大的数字的时候,js可能会解析不了. JS中的安全数字: > Number.MAX_SAFE_INTEGER 可以查看js中的…

CSP 201903-1 小中大

题目链接&#xff1a; 计算机软件能力认证考试系统http://118.190.20.162/view.page?gpidT89 【分析】主要学一下java的四舍五入&#xff0c;String,format("%.f", double&#xff09;&#xff1b; import java.util.Arrays; import java.util.Scanner;public cla…

CSP:小中大

试题编号&#xff1a;201903-1 试题名称&#xff1a;小中大 时间限制&#xff1a;1.0s 内存限制&#xff1a;512.0MB 思路&#xff1a;题目很简单&#xff0c;依次输出最大值&#xff0c;中位数&#xff0c;最小值。输出中位数的时候很神奇的出错。。。费了好半天事才改对。…

ccf小中大

试题编号&#xff1a;201903-1试题名称&#xff1a;小中大时间限制&#xff1a;1.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 思路很简单&#xff0c;但是有很多细节要考虑 如果中位数是小数&#xff0c;则要四舍五入&#xff0c;保留一位小数 否则直接输出整…

Spring中大事务拆分方案

Spring中大事务拆分方案 模块设计的时序图 启动流程 激活事件 完成事件 长事务造成的影响 由于现在事件的完成及后续激活都在一个事务中&#xff0c;比如完成融资申请事件之后会去激活批次启动签约&#xff0c;前置协议&#xff0c;资质认证等事件&#xff0c;这些操作…

AI 将完全取代前端开发吗?

注&#xff1a;今晨&#xff0c;我浏览 Medium&#xff0c;看到了篇颇为标题党的文章&#xff0c;于是我就将它抛给了 ChatGPT。本篇文章全部由 ChatGPT 所写。同时&#xff0c;我也请 ChatGPT 分享了它对此的观点。 最近&#xff0c;我的同事向我讲述了他与他老板的一次谈话。…

全网多种方法解决未连接到互联网 代理服务器出现问题,或者地址有误的错误

文章目录 1. 复现错误2. 分析错误3. 解决错误4. 解决该错误的其他方法5. 补充说明 1. 复现错误 今天&#xff0c;单位的实习生准备下载公司的代码&#xff0c;由于公司的代码放在gitlab上&#xff0c;需要内网才能登录gitlab。 而登陆内网需借助Hillstone Secure Connect&…

【实战篇】37 # 如何使用 QCharts 图表库绘制常用数据图表?

说明 【跟月影学可视化】学习笔记。 QCharts 图表库 QCharts 是一个基于 spritejs 封装的图表库&#xff0c;可以让用户以组件的形式组合出各种图表&#xff1a;https://www.qcharts.cn/#/home QCharts 图表的基本用法 最简单的方式是&#xff0c;直接通过 CDN&#xff0c;…

2021年微软研究博士奖研金名单出炉!三位华人博士生入选,每人42000美元

点击上方“CVer”&#xff0c;选择加"星标"置顶 重磅干货&#xff0c;第一时间送达 本文转载自&#xff1a;AI科技评论 作者 | 陈大鑫 就在今日&#xff0c;微软研究院宣布了2021年微软研究博士奖研金获奖名单&#xff01; 今年一共有十位在读博士生荣获此殊荣&…

新加坡管理大学何盛烽团队招收计算机视觉、图像生成方向全奖博士生

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—> CV 微信技术交流群 博士申请 | 新加坡管理大学&#xff08;SMU&#xff09;何盛烽副教授招收计算机视觉、图像生成方向全奖博士生 新加坡管理大学 新加坡管理大学&#xff0…