当前位置:首页 > React

react 热力图如何制作

2026-01-24 08:30:37React

使用 react-heatmap.js 库

安装 react-heatmap.js 库:

npm install react-heatmap.js

引入并使用 HeatMap 组件:

import HeatMap from 'react-heatmap.js';

const data = [
  { x: 0, y: 0, value: 10 },
  { x: 1, y: 1, value: 20 },
  // 更多数据点...
];

function App() {
  return (
    <HeatMap
      data={data}
      width={500}
      height={500}
    />
  );
}

使用 react-calendar-heatmap 库

安装 react-calendar-heatmap:

npm install react-calendar-heatmap

基本日历热力图实现:

react 热力图如何制作

import CalendarHeatmap from 'react-calendar-heatmap';

const values = [
  { date: '2023-01-01', count: 12 },
  { date: '2023-01-02', count: 5 },
  // 更多日期数据...
];

function App() {
  return (
    <CalendarHeatmap
      startDate={new Date('2023-01-01')}
      endDate={new Date('2023-12-31')}
      values={values}
    />
  );
}

使用 D3.js 自定义实现

安装 D3.js:

npm install d3

自定义热力图组件示例:

react 热力图如何制作

import * as d3 from 'd3';
import { useEffect, useRef } from 'react';

function Heatmap({ data, width, height }) {
  const ref = useRef();

  useEffect(() => {
    const svg = d3.select(ref.current);

    // 清除现有内容
    svg.selectAll('*').remove();

    // 创建颜色比例尺
    const colorScale = d3.scaleSequential(d3.interpolateYlOrRd)
      .domain([0, d3.max(data, d => d.value)]);

    // 绘制热力图
    svg.selectAll('rect')
      .data(data)
      .enter()
      .append('rect')
      .attr('x', d => d.x * 30)
      .attr('y', d => d.y * 30)
      .attr('width', 28)
      .attr('height', 28)
      .attr('fill', d => colorScale(d.value));
  }, [data]);

  return <svg ref={ref} width={width} height={height} />;
}

使用 Deck.gl 地理热力图

安装 Deck.gl:

npm install deck.gl @deck.gl/react

地理热力图实现:

import { Deck } from '@deck.gl/core';
import { HeatmapLayer } from '@deck.gl/aggregation-layers';

const data = [
  { coordinates: [longitude, latitude], weight: value },
  // 更多地理数据点...
];

function App() {
  const layers = [
    new HeatmapLayer({
      id: 'heatmap-layer',
      data,
      getPosition: d => d.coordinates,
      getWeight: d => d.weight,
      radiusPixels: 30,
    })
  ];

  return <Deck layers={layers} initialViewState={{ longitude: 0, latitude: 0, zoom: 3 }} />;
}

性能优化技巧

对于大数据集热力图,考虑使用 Web Workers 进行数据处理。实现虚拟滚动技术,只渲染可见区域的热力图单元。使用 memoization 技术避免不必要的重新渲染。

颜色映射应使用线性比例尺而非离散比例尺,以获得更平滑的视觉效果。添加交互功能时,使用防抖技术优化性能。

标签: react
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

react如何运行

react如何运行

运行React项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何安装

react如何安装

安装React的步骤 确保已安装Node.js(建议版本12或更高),可通过以下命令检查版本: node -v npm -v 使用Create React App快速搭建项目(推荐): npx c…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…