react中使用heatmap.js实现热力图

news/2024/7/15 19:16:18 标签: javascript, react.js, 前端

heatmap.js 是一个用于生成热力图的 JavaScript 库,可以通过使用 Canvas 或 SVG 来可视化数据密度。React 是一个流行的 JavaScript 库,用于构建用户界面,在 React 应用程序中使用 heatmap.js,首先在你的项目中安装 heatmap.js 库。

使用 npm 或 yarn 命令来安装

javascript">// NPM 
npm i heatmapjs

// yarn 
yarn add heatmapjs

导入h337库

javascript">import h337 from 'heatmapjs'

创建热力图

javascript">// 创建热力图实例
const heatmapInstance = h337.create({ // 使用 h337 库创建一个热力图实例
  container: this.heatmapRef.current, // 将热力图渲染到指定的容器中
  radius: 25, // 设置热力图的半径大小为 25
  maxOpacity: .5, // 设置热力图的最大不透明度为 0.5
  minOpacity: 0, // 设置热力图的最小不透明度为 0
  blur: .75, // 设置热力图的模糊程度为 0.75
  level: 99, // 设置热力图的层级为 99,数值越大表示绘制越详细
});

// 热力图数据点
const data = [ 
  { x: 10, y: 20, value: 5 },
  { x: 30, y: 40, value: 10 },
  { x: 50, y: 60, value: 8 },
];

// 将数据传给热力图实例进行渲染
heatmapInstance.setData({ data: heatmapData }); 

react实现的完整代码

javascript">import React, { Component, createRef } from 'react';
import h337 from 'heatmapjs';

class Heatmap extends Component {
  constructor (props){
    super(props)
    this.heatmapRef = createRef()
  }
  componentDidMount() {
    const heatmapInstance = h337.create({ // 使用 h337 库创建一个热力图实例
	  container: this.heatmapRef.current, // 将热力图渲染到指定的容器中
	  radius: 25, // 设置热力图的半径大小为 25
	  maxOpacity: .5, // 设置热力图的最大不透明度为 0.5
	  minOpacity: 0, // 设置热力图的最小不透明度为 0
	  blur: .75, // 设置热力图的模糊程度为 0.75
	  level: 99, // 设置热力图的层级为 99,数值越大表示绘制越详细
	});

	// 热力图数据点
    const data = [
      { x: 10, y: 20, value: 5 },
      { x: 30, y: 40, value: 10 },
      { x: 50, y: 60, value: 8 }
    ];
    
	// 将数据传给热力图实例进行渲染
    heatmapInstance.setData({ data })
  }
  
  render() {
    return (
      <div ref={this.heatmapRef} style={{ width: '100%', height: '100%' }} />
    )
  }
}

export default Heatmap

效果图

热力图
heatmap.js
heatmap文档


http://www.niftyadmin.cn/n/5262600.html

相关文章

复制粘贴——QT实现原理

复制粘贴——QT实现原理 QT 剪贴板相关类 QClipboard 对外通用的剪贴板类&#xff0c;一般通过QGuiApplication::clipboard() 来获取对应的剪贴板实例。 // qtbase/src/gui/kernel/qclipboard.h class Q_GUI_EXPORT QClipboard : public QObject {Q_OBJECT private:explici…

实战章节:在Linux上部署各类软件

详细资料见文章的资源绑定 一、前言 1.1 为什么学习各类软件在Linux上的部署 在前面&#xff0c;我们学习了许多的Linux命令和高级技巧&#xff0c;这些知识点比较零散&#xff0c;同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用&#xff0c;但是并没…

ASP.NET Core 8 在 Windows 上各种部署模型的性能测试

ASP.NET Core 8 在 Windows 上各种部署模型的性能测试 我们知道 Asp.net Core 在 windows 服务器上部署的方案有 4 种之多。这些部署方案对性能的影响一直以来都是靠经验。比如如果是部署在 IIS 下&#xff0c;那么 In Process 会比 Out Process 快&#xff1b;如果是 Self Hos…

WPF Icon矢量库 MahApps.Metro.IconPacks

文章目录 前言MahApps.Metro.IconPacksIconPacks.Browser简单使用简单使用案例代码Icon版本个人推荐 Icon自定义版权问题 前言 为了更快的进行开发&#xff0c;我找到了一个WPF的矢量图库。这样我们就不用去网上找别人的矢量库了 MahApps.Metro.IconPacks MahApps.Metro.Icon…

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…

代码随想录算法训练营第二十二天(二叉树篇)|450. 删除二叉搜索树中的节点

周一参加了公务员的省考&#xff0c;虽然只是抱着学习的心态尝试的&#xff0c;并不想上岸&#xff0c;但还是被打击到了&#xff0c;自己果然暂时还是“干啥啥不行”的状态&#xff0c;当然也是因为自己哪方面都不够非常努力。那么&#xff0c;继续努力吧&#xff0c;趁身体和…

深入理解C语言的函数参数

1、一个简单的函数 int Add(int x, int y) {return x y; }int main() {printf("%d", Add(2, 3, 4, 5, 6));return 0; } 这一段足够简单的代码&#xff0c;闭眼都能知道运行结果会在屏幕上打印 5 。那编译器是怎么处理后面的 4、5、6 &#xff1f; 我们再看看这个函…

数组笔试题解析(下)

数组面试题解析 字符数组 &#xff08;一&#xff09; 我们上一篇文章学习了一维数组的面试题解析内容和字符数组的部分内容&#xff0c;我们这篇文章讲解一下字符数组和指针剩余面试题的解析内容&#xff0c;那现在&#xff0c;我们开始吧。 我们继续看一组字符数组的面试…