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 像素

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

相关推荐
叁两11 分钟前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
golang学习记16 分钟前
GitLens 十大神技:彻底改变你在 VS Code 中的 Git 工作流
前端·后端·visual studio code
SuperEugene18 分钟前
后台权限与菜单渲染:基于路由和后端返回的几种实现方式
前端·javascript·vue.js
兆子龙20 分钟前
WebSocket 入门:是什么、有什么用、脚本能帮你做什么
前端·架构
csdn飘逸飘逸20 分钟前
Autojs基础-全局函数与变量(globals)
javascript
是一碗螺丝粉25 分钟前
LangChain 链(Chains)完全指南:从线性流程到智能路由
前端·langchain·aigc
KKKK29 分钟前
手写Promise,从测试用例的角度理解
javascript
月弦笙音29 分钟前
【浏览器】这几点必须懂
前端
青青家的小灰灰30 分钟前
迈向全栈新时代:SSR/SSG 原理、Next.js 架构与 React Server Components (RSC) 实战
前端·javascript·react.js
SuperEugene31 分钟前
弹窗与抽屉组件封装:如何做一个全局可控的 Dialog 服务
前端·javascript·vue.js