当前位置:首页 > React

react 热力图如何制作

2026-03-10 16:40:48React

安装依赖

使用 react-heatmapreact-heat-map 库可以快速实现热力图功能。通过 npm 或 yarn 安装:

npm install react-heatmap
# 或
yarn add react-heatmap

基础热力图实现

引入库并渲染基础热力图组件:

import HeatMap from 'react-heatmap';

function App() {
  const data = [
    { x: 1, y: 1, value: 10 },
    { x: 2, y: 2, value: 20 },
    // 更多数据点...
  ];

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

自定义样式

通过 gradientcellStyle 属性调整颜色和单元格样式:

<HeatMap
  data={data}
  gradient={['#0000ff', '#ff0000']} // 从蓝到红的渐变
  cellStyle={(background, value, min, max) => ({
    background,
    fontSize: '11px',
    border: '1px solid #fff'
  })}
/>

时间序列热力图

使用 react-calendar-heatmap 可制作类似 GitHub 贡献日历的热力图:

react 热力图如何制作

npm install react-calendar-heatmap

示例代码:

import CalendarHeatmap from 'react-calendar-heatmap';

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

<CalendarHeatmap
  startDate={new Date('2023-01-01')}
  endDate={new Date('2023-12-31')}
  values={dateValues}
  showWeekdayLabels
/>

地理热力图

结合 react-simple-mapsd3-scale-chromatic 实现地理分布热力图:

react 热力图如何制作

npm install react-simple-maps d3-scale-chromatic

实现示例:

import { Choropleth } from 'react-simple-maps';
import { scaleQuantize } from 'd3-scale';
import { schemeBlues } from 'd3-scale-chromatic';

const colorScale = scaleQuantize()
  .domain([0, 100])
  .range(schemeBlues[7]);

<Choropleth
  data={geoData}
  geography={geoJson}
  colorScale={colorScale}
  valueAccessor={d => d.value}
/>

性能优化

对于大数据集,建议:

  • 使用 shouldComponentUpdateReact.memo 避免不必要的重渲染
  • 通过 dataAggregation 降低数据密度
  • 对静态数据启用 staticPlot 属性

交互功能

添加鼠标悬停提示框:

<HeatMap
  data={data}
  onMouseOver={(event, data) => {
    console.log(`Value: ${data.value}`);
  }}
  tooltip={(value, unit) => `${value} ${unit}`}
/>

标签: react
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

react如何下载

react如何下载

安装 React 的步骤 通过 npm 或 yarn 安装 React,确保已安装 Node.js(版本建议 ≥ 14.0.0)。打开终端或命令行工具,运行以下命令: npx create-reac…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…