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

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

相关推荐
谢尔登2 分钟前
【React】 状态管理方案
前端·react.js·前端框架
用户9385156350720 分钟前
手把手教你实现一个 MCP 文件读取服务器:从协议到代码的深度解析
javascript·人工智能
用户21366100357221 分钟前
Vue商品详情与放大镜组件
前端·javascript
半个落月25 分钟前
从Tapas小Demo理清localStorage、事件与this
前端·javascript
用户9385156350725 分钟前
RAG 实战:从零搭建语义搜索系统,彻底告别关键词匹配的尴尬
javascript·人工智能
李明卫杭州27 分钟前
Vue2 中 v-model 处理不同数据结构的技巧
前端·javascript·vue.js
李明卫杭州32 分钟前
使用 computed 处理 v-model 复杂数据结构
前端·javascript·vue.js
丨我是张先生丨1 小时前
日语单词 Web Page
前端·css·css3
禅思院2 小时前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【引子】
前端·面试·架构
TrisighT3 小时前
Electron 鸿蒙 PC 上点外链唤醒应用,我试了 6 种写法只有 1 种能跑
前端·electron·harmonyos