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

news2024/10/6 10:40:34

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.coloradmin.cn/o/748132.html

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

相关文章

【ThinkPHP】实现一个逆向工程生成model

ThinkPHP为了节省一些重复的步骤,写了个简单版的生成model的工具,逆向生成model代码,节省时间,专注写业务代码。 ThinkPHP中的命令行也提供了一些生成代码的命令: make:controller 创建控制器 make:model 创建模型 m…

spring复习:(17)ClassPathXmlApplicationContext

类继承图如下: 其中的父类AbstractRefreshableApplicationContext中定义了一个DefaultListableBeanFactory对象: Nullableprivate DefaultListableBeanFactory beanFactory;AbstractApplicationContext中定义了obtainFreshBeanFactory方法 protected ConfigurableL…

你知道mp3转换器怎么用吗?分享在线音频转换mp3怎么弄

飒飒:嘿,你有没有想过如何将在线音频转换为mp3格式? 潇潇:是的,我确实有过这个需求。在网上找到了一些工具和方法,可以帮助我们完成这个任务。 飒飒:那太好了!你能告诉我一些详细的…

HTML中用户注册倒计时案例

一、代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head><…

el-table 动态合并不定项多级表头

我们的需求是根据不同的厂配不同的多级表头,每个表头有需要合并的项,并且不确定 如图所示 对表格进行循环操作,此处不赘述,最下方有全部代码 表头是单独写在js方便后期更改,然后引入js文件,然后根据情况去调取 // 获取表头getHeader(nv) {this.factoryCodes nv;this.heade…

KingFusion通过动态库的方式连接KingIOServer数据

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 本节主要测试KingFusion通过动态库接入KingIOServer数据&#xff0c;实现快速订阅、回写实时数据及客户端展示的操作。 说明&#xff1a; 1、Windows版本:KingFunsion与KingIOServer数据交互时&#xff0c;使用动态库…

python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token

背景&#xff1a; 实际开发中&#xff0c;Python程序中需要调用后台接口&#xff0c;充当前端&#xff0c;后端规定请求头需要携带token 封装的get和post类: class RequestMethodCarryJson:"""定义请求类型以json方式传递参数"""def __init__…

欧姆龙NJ1P2 Fins Udp通讯

NJ1P2 Tcp连接不成功&#xff0c;咨询客服说不支持Fins Tcp&#xff0c;所以改成Udp方式。 Udp连接&#xff1a; locateIp IPAddress.Parse(txtLocateIP.Text); locatePoint new IPEndPoint(locateIp, Convert.ToInt32(txtLocatePort.Text)); udpCl…

刷题记录02

题目1 解析: 遍历字符串&#xff0c;使用cur去记录连续的数字串&#xff0c; 如果遇到不是数字字符&#xff0c;则表示一个连续的数字串结束了&#xff0c; 则将数字串跟之前的数字串比较&#xff0c;如果更长&#xff0c;则更新更长的数字串更新到ret。 具体代码: import jav…

线上阿里云短信盗刷问题实录

背景 营销系统中有定时任务处理将待支付订单变更为已取消,执行时间五分钟一次.业务执行处理异常会发送短信给相关开发人员进行短信提醒.从下午一点二十五开始,开发人员间隔五分钟就会收到业务执行异常的短信提醒.最初因为测试或是正式环境中确实有异常的业务,才会出现这个情况,…

C++结合EasyX写扫雷(new)

【游戏】C结合EasyX写扫雷&#xff08;时隔半年后重写&#xff09; 上一次写扫雷这一次实现思路设置全局变量Grid类Grid类的成员函数启动画面死循环监听鼠标事件 全部代码其他 上一次写扫雷 大约半年之前的寒假期间&#xff0c;我接触了EasyX这个图形库&#xff0c;于是试着写…

antd design 4 版本,表格操作列文字间隔小竖线

组件库可以直接使用 <Divider typevertical /> 时小记&#xff0c;终有成。

23 MFC 富文本

文章目录 ui 设置 使用AfxInitRichEdit2(); 初始化否则不显示 //初始化 BOOL CnotePadDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时&#xff0c;框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标…

数学建模——TOPSIS法

TOPSIS法&#xff08;Technique for Order Preference by Similarity to ldeal Solution&#xff09; 可翻译为逼近理想解排序法&#xff0c;国内常简称为优劣解距离法 TOPSIS法是一种常用的综合评价方法&#xff0c;其能充分利用原始数据的信息&#xff0c;其结果能精确的反应…

一款基于JAVA开发的Echarts后台生成框架

目录 前言 一、Echarts后台生成框架 1、简介 2、开源地址 3、支持类型 二、图表生成实战 1、项目使用 2、后台折线图生成 3、Echarts改造 4、最终效果 总结 前言 之前的博文主要分享了一些关于Echarts的基本开发知识&#xff0c;在之前的博客中主要介绍的是在前端页面进…

魏副业而战:她又办了2套图书证

我是魏哥&#xff0c;与其躺平&#xff0c;不如魏副业而战&#xff01; 社群成员董姐又办了2套图书证&#xff0c;加上之前的1套&#xff0c;她已经有3套图书证了。 3套图书证意味着可以开9个闲鱼图书店铺。是不是感觉很NB。 董姐说&#xff0c;2套图书证等了快一个多月&…

Flink基本原理剖析讲解

1.Flink简介 Flink是一个批处理和流处理结合的统一计算框架&#xff0c;其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理&#xff0c;是业界最顶级的开源流处理引擎。 Flink最适合的应用场景是低时延的数据处理&#xff08;Data Processing…

面试题更新之-伪元素和伪类

文章目录 伪元素和伪类是什么&#xff1f;伪元素&#xff08;Pseudo-elements&#xff09;:伪类&#xff08;Pseudo-classes&#xff09;: css伪元素和伪类的区别使用css伪元素的好处使用css伪类的好处 伪元素和伪类是什么&#xff1f; 在CSS中&#xff0c;伪元素&#xff08;…

星云零售信贷基于 Apache Doris 的 OLAP 演进之路

本文导读&#xff1a; 腾梭科技是国内领先的零售金融数字化及安全服务提供商&#xff0c;是腾讯投资且在金融领域的战略合作伙伴&#xff0c;并与腾讯联合研发了“星云智慧信贷解决方案。在其信贷业务转型过程中&#xff0c;随着系统规模不断扩大&#xff0c;早期架构无法再满…

centos7根分区、文件系统扩容

1、 输入lsblk&#xff0c;查看到新硬盘sde&#xff0c;根目录现71G. 2、 创建分区fidisk /dev/sde 3、 刷新分区 partprobe /dev/sde&#xff0c;并创建物理卷 pvcreate /dev/sde1 4、 查看卷组名 vgdisplay 5、 将物理卷扩展到卷组 vgextend centos /dev/sde1 6、 查看逻辑巻…