使用高级 Chakra UI 组件更快地构建 💎

了解更多
跳到内容
文档演练场指南博客
赞助商

useChart

提供用于管理和格式化图表数据的实用工具

useChart hook 提供了一套实用工具,可高效地管理和格式化图表数据。它提供了多种帮助器,用于

  • 聚合系列数据以计算总计、最小值、最大值和百分比等值
  • 格式化数字和日期
  • 查询 颜色、大小和间距 令牌

用法

import { useChart } from "@chakra-ui/charts"
const chart = useChart({
  data: [
    { date: "2024-01-01", revenue: 1000 },
    { date: "2024-01-02", revenue: 2000 },
    { date: "2024-01-03", revenue: 3000 },
  ],
  series: [{ name: "revenue", color: "blue.500" }],
})

系列

getKey

返回给定系列项的键。它是一个恒等函数,但提供了一种 类型安全 的方式来访问系列数据。

const key = chart.getKey("revenue")

聚合

getTotal

计算给定系列在所有条目中的 总和

console.log(chart.getTotal("revenue")) // 6000

getMin

查找数据集中给定键的 最小值

console.log(chart.getMin("revenue")) // 1000

getMax

查找数据集中给定键的 最大值

console.log(chart.getMax("revenue")) // 3000

getValuePercent

计算值相对于数据集或给定域的 百分比

const percentage = chart.getValuePercent("revenue", 5000)
console.log(percentage) // 0.5

格式化

formatNumber

使用来自 EnvironmentProvider 的当前语言环境以及提供的 Intl.NumberFormatOptions 格式化数字。

const format = chart.formatNumber({ style: "currency", currency: "USD" })
console.log(format(1000)) // "$1,000.00"

formatDate

根据 语言环境设置 格式化日期字符串。

const formatDate = chart.formatDate({ year: "numeric", month: "short" })
console.log(formatDate("2024-03-28")) // "Mar 2024"

设计令牌

颜色

检索 Chakra UI 颜色令牌

const barColor = chart.color("blue.500") // var(--chakra-colors-blue-500)

大小

检索 Chakra UI 大小令牌

const chartSize = chart.size("4") // var(--chakra-sizes-4)

间距

检索 Chakra UI 间距令牌

const barColor = chart.color("blue.500") // var(--chakra-colors-blue-500)
const chartPadding = chart.spacing("4") // var(--chakra-spacing-4)

排序

根据指定的键和方向自动对图表数据进行排序。

const chart = useChart({
  data: [
    { date: "2024-01-01", revenue: 1000 },
    { date: "2024-01-02", revenue: 2000 },
    { date: "2024-01-03", revenue: 3000 },
  ],
  sort: { by: "date", direction: "asc" },
  series: [{ name: "revenue", color: "blue.500" }],
})

高亮显示

当与图表图例交互时,可以根据 clickhover 事件高亮显示系列。highlightedSeries 状态用于跟踪当前高亮显示的系列。

这在图表中有多个系列时特别有用。

highlightedSeries

跟踪当前高亮显示的系列。

setHighlightedSeries

设置高亮显示的系列。

chart.setHighlightedSeries("revenue")

isHighlightedSeries

检查系列是否高亮显示。

const isActive = chart.isHighlightedSeries("revenue")

API 表

帮助器目的
getSeries(item)查找系列项的详细信息
getSeriesOpacity(name, fallback)控制系列不透明度
getTotal(key)计算键的总和
getMin(key)获取键的最小值
getMax(key)获取键的最大值
getValuePercent(key, value, domain)计算值的百分比
formatNumber(options)根据语言环境格式化数字
formatDate(options)根据语言环境格式化日期
color(key)检索 Chakra UI 颜色令牌
size(key)检索 Chakra UI 大小令牌
spacing(key)检索 Chakra UI 间距令牌
data解析后的图表数据
highlightedSeries跟踪高亮显示的系列
setHighlightedSeries(name)设置高亮显示的系列
isHighlightedSeries(name)检查系列是否高亮显示

上一页

安装

下一页

轴 (X 和 Y)