react中recharts使用的示例

目录

使用场景

如何使用


项目中安装recharts

javascript 复制代码
npm install recharts

示例代码

javascript 复制代码
import React, { FC } from 'react'
// 导入recharts图表库的相关组件
import { PieChart, Pie, Cell, Tooltip, ResponsiveContainer } from 'recharts'
// 导入统计颜色常量
import { STAT_COLORS } from '../../../constant'

// 定义饼图的示例数据
const data01 = [
  { name: 'Group A', value: 400 },
  { name: 'Group B', value: 300 },
  { name: 'Group C', value: 300 },
  { name: 'Group D', value: 200 },
  { name: 'Group E', value: 278 },
  { name: 'Group F', value: 189 },
]

// 饼图演示组件
const PieDemo: FC = () => {
  return (
    // 容器div,设置宽度和高度
    <div style={{ width: '300px', height: '400px' }}>
      {/* 响应式容器,使图表能够自适应容器大小 */}
      <ResponsiveContainer width="100%" height="100%">
        {/* 饼图组件 */}
        <PieChart>
          {/* 饼图数据配置 */}
          <Pie
            dataKey="value" // 指定数据中用于计算扇形大小的字段
            data={data01} // 饼图的数据源
            cx="50%" // x 轴的偏移,居中显示
            cy="50%" // y 轴的偏移,居中显示
            outerRadius={50} // 饼图的外半径
            fill="#8884d8" // 饼图的默认填充色
            label={i => `${i.name}: ${i.value}`} // 设置标签格式,显示名称和值
          >
            {/* 为每个扇形设置不同的颜色 */}
            {data01.map((i, index) => {
              return <Cell key={index} fill={STAT_COLORS[index]} /> // 使用预定义的颜色数组
            })}
          </Pie>
          {/* 鼠标悬停提示框 */}
          <Tooltip />
        </PieChart>
      </ResponsiveContainer>
    </div>
  )
}

export default PieDemo

代码解读

代码结构和用法

  1. 导入依赖
javascript 复制代码
import { PieChart, Pie, Cell, Tooltip, ResponsiveContainer } from 'recharts'
import { STAT_COLORS } from '../../../constant'

导入 recharts 库的饼图相关组件

◦ 导入项目中定义的统计颜色常量

2.数据定义

javascript 复制代码
const data01 = [
  { name: 'Group A', value: 400 },
  { name: 'Group B', value: 300 },
  { name: 'Group C', value: 300 },
  { name: 'Group D', value: 200 },
  { name: 'Group E', value: 278 },
  { name: 'Group F', value: 189 },
]

3.组件渲染

javascript 复制代码
<div style={{ width: '300px', height: '400px' }}>
  <ResponsiveContainer width="100%" height="100%">
    <PieChart>
      <Pie ...>
        {data01.map((i, index) => {
          return <Cell key={index} fill={STAT_COLORS[index]} />
        })}
      </Pie>
      <Tooltip />
    </PieChart>
  </ResponsiveContainer>
</div>

使用 ResponsiveContainer 确保图表自适应容器大小

◦ PieChart 是饼图的主容器

◦ Pie 定义饼图的配置,如数据源、半径、标签等

◦ Cell 为每个扇形设置不同颜色

◦ Tooltip 提供鼠标悬停时的提示信息

组件特点

  1. 响应式设计:使用 ResponsiveContainer 使饼图能够自适应容器大小

  2. 自定义颜色:通过 Cell 组件为每个扇形设置不同的颜色

  3. 交互功能:通过 Tooltip 提供鼠标悬停时的数据提示

  4. 标签显示:饼图扇形上显示名称和值的标签

使用场景

这个组件主要用于:

  • 问卷统计页面的图表展示
  • 数据分布的可视化表示
  • 演示饼图功能的示例组件

如何使用

在其他组件中可以这样引入使用:

javascript 复制代码
import PieDemo from './PieDemo'

// 在JSX中
<PieDemo />

样式设置

• 容器大小为 300px 宽度和 400px 高度

• 饼图居中显示(cx="50%",cy="50%")

• 外半径为 50 像素

• 标签格式为 "名称: 值"

相关推荐
EnCi Zheng9 分钟前
M5-markconv自定义CSS样式指南 [特殊字符]
前端·css·python
kyriewen13 分钟前
你的网页慢,用户不说直接走——前端性能监控教你“读心术”
前端·性能优化·监控
广州华水科技13 分钟前
北斗GNSS变形监测在大坝安全监测中的应用与优势分析
前端
前端老石人25 分钟前
前端开发中的 URL 完全指南
开发语言·前端·javascript·css·html
CAE虚拟与现实25 分钟前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
Sarvartha36 分钟前
三目运算符
linux·服务器·前端
晓晨的博客43 分钟前
ROS1录制的bag包转换为ROS2格式
前端·chrome
Wect1 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·typescript
donecoding1 小时前
别再让 pnpm 跟着 nvm 跑了!独立安装终极指南
前端·node.js·前端工程化
不可能的是1 小时前
从 /simplify 指令深挖 Claude Code 多 Agent 协同机制
javascript