什么是Heatmap(热图)图表?用DHTMLX可实现快速构建

DHTMLX Chart是DHTMLX最新发布的JavaScript UI小部件库的核心内容之一,这个图表小部件收到了几个重要的更新,但其中最引人注目的是一个新的数据可视化选项——日历热图。

DHTMLX专注于JavaScript和HTML5 UI小部件和库,以帮助开发人员更快地构建功能丰富的、交互式的Web界面。 遵循现代网络开发的标准和做法,DHTMLX提供针对桌面和移动设备定制的顶级Web应用程序框架。

在本文中,我们将仔细研究这种图表类型,它的用途、应用领域以及用DHTMLX实现它的好处。

DHTMLX Suite正式版下载

什么是日历热图及其工作原理?

日历热图图表(Calendar Heatmap Chart)提供了比较数据的可视化表示,在包含不同时间段的二维日历视图中描绘带有颜色范围的数据点。图表中的每个单元格对应一周中的一天,整个时间段从一周到一年不等,彩色编码格式允许以紧凑和清晰的方式显示复杂的数据。热图图表通常附有图例,使其易于阅读,因此用户可以在必要的时间内更快地检测到各种模式或异常。

热图早在19世纪就开始使用了,已知的第一个使用热图的人是法国统计学家杜桑·卢阿(Toussaint Loua),他在1873年应用这种技术来展示巴黎各区的不同社会统计数据。1991年,美国软件设计师科马克·金尼(Cormac Kinney)首次将“热图”一词注册为商标,他用这种类型的图表在他的软件解决方案中显示金融市场信息。

如今,热图图表已成为许多领域数据分析必备的可视化工具:

  • 业务分析
  • 网站(用户交互分析)
  • 地理位置
  • 生物学
  • 体育

现在我们介绍一下如何将日历热图添加到网页中,并使用DHTMLX Charts对其进行定制。

用DHTMLX构建JavaScript热图图表的好处

您可能想知道为什么选择DHTMLX Chart来构建JavaScript热图图表,因为有很多其他JS库可用,因此我们回顾一下实现日历热图的主要阶段,并了解使用DHTMLX的图表库实现这一目的的主要好处。

快速初始化

DHTMLX Chart最初被设计为一个开发人员友好的工具,允许开发者使用任何可用的图表类型可视化数据,而无需花费太多时间。将JavaScript热图添加到您的应用程序只需要几个简单的步骤:下载 Chart包并将其解压缩到您的项目文件夹中,为图表创建一个容器、初始化热图并将数据加载到图表中,这样就完成了。

更具体地说,初始化过程是通过dhx.Chart对象构造函数完成的。

const chart = new dhx.Chart("chart", config);
chart.data.parse(heatMapData);

构造函数接受两个参数,即放置图表的容器和一个具有配置属性的对象。

简单的配置

现在您可以继续配置图表的设置,这个阶段非常简单。使用DHTMLX构建的日历热图配置对象包括三个属性:

  • type:“calendarHeatMap” (required) – 指定图表类型
  • series(必选) – 指定数据如何在图表中呈现
  • 图例(可选) – 配置图例,用于澄清图表数据

下面是如何配置日历热图的方法:

const config = {
type: "calendarHeatMap",
css: "dhx_widget--bordered",
series: [
{
value: "value",
date: "date",
dateFormat: "%d %M %Y",
startDate: "20 Jan 2022",
endDate: "20 Aug 2023",
tooltipTemplate: point => `The profit: ${point[1]}$, ${point[0]}`,
weekStart: "monday",
maxValue: 90,
minValue: -40,
}
],
legend: {
values: {
text: "The profit of my business per day",
tick: 5,
majorTick: 2,
step: 1,
tickTemplate: value => `${value}$`,
},
halign: "center",
valign: "top",
margin: 0,
size: 60, //
}
};

就像图表小部件中包含的其他类型的图表一样,日历热图图表是高度可定制的,您可以轻松地更改图表的样式或修改其关键元素。在我们示例的代码中,您可能注意到使用了tooltipTemplate参数,该参数用于指定用于在工具提示中显示数据项值的模板。

日历热图图表的一个关键优势是它允许可视化不同时期的数据,默认情况下,最终用户将看到从数据集中提供的最早年份的1月1日到最近年份的12月31日的信息。但与此同时,我们的图表为您提供了大量与日期范围相关的定制机会。

在热图图表中自定义日期范围

通常情况下,最终用户可能需要查看特定时间范围内的数据,而不是太大的整个数据集。为此,我们的热图图表配置对象包括series属性中的startDate和endDate参数。需要注意的是,这些参数的日期格式取决于dateFormat 属性。

在上面的例子中,日期范围从“20/01/22”到“20/08/23”(包括在内),即整个期间包括一年零八个月。通过更改startDate和endDate参数,还可以将图表设置为显示一个月、一年或任何其他时期的数据。以下是我们如何在一个月的样本数据中制作图表:

const config = {
type: "calendarHeatMap",
series: [
{
value: "value",
date: "date",
dateFormat: "%d %M %Y",
startDate: "20 Jan 2022",
endDate: "20 Feb 2022",
}
],
}

此外,如果未指定日期参数之一,图表将根据其他参数和数据集自动计算日期范围。在我们的示例中,如果为startDate参数设置了一个值,但将endDate参数保留为空,则图表将包括从“20/01/22”到“19/01/24”的时间段。

与其他DHTMLX组件的集成

由于热图在商业业务中非常有用,我们为您提供了用于项目管理的顶级DHTMLX产品的集成示例 - Gantt, Event Calendar和Scheduler。

上图显示了日历热图在提供JavaScript甘特图直方图中呈现的工作时间和加载的总体概述方面是如何有用的。因此,您可以在项目管理应用程序中获得额外的信息来源。

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

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

相关文章

基于springboot+vue的疫情管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

不外传秘诀| docker 快速搭建常用的服务环境

本文主要给大家介绍如何使用 docker 搭建常用的服务环境, 包括mysql,reedis,nginx,jenkins 等常用的环境,下面直接进入主题。 1、MySQL 部署 ①搜索 MySQL 镜像 docker search mysql ②拉取 MySQL 镜像 docker pull mysql:5.7 ③创建容器&#xf…

基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

功能介绍 以STM32单片机作为主控系统;LCD1602液晶显示屏来显示显示测得的值;SR501人体红外感应是否有人进行防盗;通过烟雾传感器MQ-2获取前的烟雾值;通过DHT11温湿度传感器来获取当前的温湿度;所有的信息通过通过esp82…

php通过IP获取用户当前所在城市

php获取当前用户所在城市 php通过ip免申请api获取所在城市的代码包括省市区sql数据 <?php function getName($pinyin,$lv){$servername "localhost";$username "root";$password "root";$dbname "ttx";try {$conn new PDO(…

机器学习15:神经网络-Neural Networks

神经网络是特征交叉的更复杂版本。本质上&#xff0c;神经网络会学习适当的特征组合。本文主要介绍神经网络的结构、隐藏层、激活函数等内容。 目录 1.神经网络&#xff1a;结构 2.隐藏层 3.激活函数 3.1 常用激活函数 3.2 小结 4.神经网络小练习 4.1 第一个神经网络 …

Jina AI 受邀出席 WAIC 2023「科技无障碍」论坛,与行业专家共话 AI 普惠未来

7 月 6 日&#xff0c;2023 世界人工智能大会&#xff08;WAIC&#xff09;在上海世博中心及世博展览馆开幕&#xff0c;并在浦东张江、徐汇西岸设分会场&#xff0c;同步在闵行等产业集聚区开展同期活动。本届大会由上海市人民政府和国家发改委、工信部、科技部、国家网信办、…

基于JSP+Servlet的医药药品管理系统

用户类型&#xff1a;双角色角色&#xff08;患者、管理员[医生]&#xff09; 设计模式&#xff1a;MVC&#xff08;jspservletjavabean) 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 主要技术&#xff1a;jsp、servlet、jdbc、jsp、html5、jquery、css、js…

RabbitMQ之交换机

RabbitMQ之交换机 1. Exchanges1.1 Exchanges 概念1.2 Exchanges 的类型1.3 无名 exchange 2. 临时队列3. 绑定&#xff08;bindings&#xff09;4. Fanout4.1 Fanout 介绍4.2 Fanout 实战 5. Direct exchange5.1 Direct exchange 介绍5.2 多重绑定5.3 实战 6. Topics6.1 之前类…

亚马逊云科技143项安全标准与合规性认证,帮助企业满足安全合规要求

在亚马逊云科技&#xff0c;为满足客户不断变化的需求&#xff0c;亚马逊云科技持续创新与迭代&#xff0c;设计的服务能帮助客户满足最严格的安全和合规性要求。针对安全相关工作&#xff0c;亚马逊云科技服务团队与Amazon Security Guardians云守护者项目密切配合&#xff0c…

JVM系统优化实践(18):GC生产环境案例(一)

生产环境中&#xff0c;最常见的一种案例就是OOM&#xff0c;也叫「内存溢出」&#xff0c;它表示JVM已经无法支撑业务系统的运行。而很多工程师都没有类似处理线上系统故障的经验&#xff0c;尤其是这种突发的故障。那么&#xff1a; 1、为什么会OOM&#xff1f;&#xff08;…

linux终端前面显示base和不显示base

问题描述&#xff1a;前提是系统里装了anaconda3&#xff0c;有时候两个服务器之间相连长时间没使用或者访问时候前面没显示base。。 解决&#xff1a;我们在做深度学习时需要一个环境&#xff0c;如果前面没显示base的话&#xff0c;你直接conda activate是激活不了我们需要跑…

降级npm后,出现xxx 不是内部或外部命令解决方法

比如我安装了anyproxy npm install anyproxy -g 之后在cmd中输入anyproxy 发现 anyproxy 不是内部或外部命令解决方法. 一般出现这样的问题原因是npm安装出现了问题&#xff0c;全局模块目录没有被添加到系统环境变量。 Windows用户检查下npm的目录是否加入了系统变量P…

实例014 OutLook界面

实例说明 程序主界面包括菜单栏、工具栏、状态栏和树状视图。OutLook界面美观、友好&#xff0c;是一个很实用的程序主界面&#xff0c;并且菜单栏和工具栏是可移动的。运行本例效果如图1.14所示。 图1.14 Out Look界面 技术要点 一般程序的菜单栏和工具栏是不可移动的&…

【观察】杉数科技:释放智能决策“乘数效应”,驱动智能制造高质量增长

毫无疑问&#xff0c;中国制造业在时代背景与国家政策的双重驱动下&#xff0c;正加速向数智化转型&#xff0c;而以数据驱动的智能决策也正成为制造业资源优化配置的“利器”&#xff0c;通过端到端的数据深度感知与决策优化&#xff0c;显然能够将工业和制造业的数据价值发挥…

源码编译nginx支持https

编译openssl 从github下载指定版本的源码 https://github.com/openssl/openssl/releases 下载后解压 tar -zcvf openssl-3.1.1.tar.gz 进入文件夹后配置 cd openssl-3.1.1 && ./Configure --prefix/data/projects/build/openssl-3.1.1 --prefix参数指定路径 执行编译…

Python isalpha()函数详解

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 isalpha 1、包含字母的情况2、包含数字的情况3、包含汉字和其他语言的情况4、空字…

Java面试专栏

Java面试专栏 Java是一门广泛应用于企业级应用开发的编程语言&#xff0c;因此在企业招聘中Java开发人员的需求非常大。如果你正在准备Java面试&#xff0c;以下是一些常见的Java面试问题和答案&#xff0c;希望能帮助你更好地准备面试。 Java基础 JDK和JRE的区别是什么&…

Ribbon IPing机制源码探秘

&#x1f34a; Java学习&#xff1a;社区快速通道 &#x1f34a; 深入浅出RocketMQ设计思想&#xff1a;深入浅出RocketMQ设计思想 &#x1f34a; 绝对不一样的职场干货&#xff1a;大厂最佳实践经验指南 &#x1f4c6; 最近更新&#xff1a;2023年7月2日 &#x1f34a; 点…

为啥离不了 linux

Linux与Windows都是十分常见的电脑操作系统&#xff0c;相信你对它们二者都有所了解&#xff01;在你的使用过程中&#xff0c;是否有什么事让你觉得在Linux上顺理成章&#xff0c;换到Windows上就令你费解&#xff1f;亦或者关于这二者你有任何想要分享的&#xff0c;都可以在…

DAPP(七)——React与智能合约的架构整合

合并一下react和智能合约&#xff0c;创建react脚手架 create-react-app myapp 将合约中对应的文件 复制到 react脚手架的根目录中 结果如下&#xff1a; 下载合约所要的依赖&#xff1a; npm i openzeppelin-solidity 可以在脚手架终端执行truffle的命令语句&#xff0c;t…