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

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

相关推荐
IT_陈寒1 小时前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
系统集成-鹰翔1 小时前
ERP图片改名后仍命中识别缓存:缓存键、十分钟到期与调用计数
javascript·经验分享·后端
用户2705077725242 小时前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法
前端
用户499335025072 小时前
一人VIP账号多人共用:Web 代理里的会话共享怎么实现
前端
用户老李2 小时前
无线电自学教程 05:第一台收音机——从矿石机到 SDR
前端
IPIPD2 小时前
Node.js请求遇到503怎么重试?先解析Retry-After,再做有上限退避
前端
葡萄城技术团队2 小时前
dsh-spreadjs-editor 的集成链路:把 SpreadJS Designer 嵌进 Agent 工作台
前端
FlyWIHTSKY3 小时前
vue2和vue3有什么区别,用法上有哪些区别
前端·javascript·vue.js
码云之上3 小时前
10 颗一模一样的「Edit」:中后台 Web Agent 怎么找到对的那一行
前端·人工智能·浏览器
量化分析码农3 小时前
【Python量化多因子实战 04】因子暴露不是 alpha:市值与行业中性化实战
前端·后端