wui
图表

面积图 Area Chart

在折线趋势下增加克制填充,用于强调连续数值的规模。

基础用法

Loading…
pnpm dlx @wui-design/cli@latest add @wui/area-chart
components/charts/area-chart.tsx
"use client"

import * as React from "react"

import { LineChart, type LineChartProps } from "./line-chart"

export interface AreaChartProps extends Omit<
  LineChartProps,
  "fillOpacity" | "showDots"
> {
  /** 面积填充的不透明度。 @default 0.14 */
  fillOpacity?: number
  /** 是否显示数据节点。 @default false */
  showDots?: boolean
}

/** 在折线趋势下方增加克制填充,用于强调连续数值的规模。 */
function AreaChart({
  fillOpacity = 0.14,
  showDots = false,
  ...props
}: AreaChartProps) {
  return <LineChart fillOpacity={fillOpacity} showDots={showDots} {...props} />
}

export { AreaChart }

使用场景

AreaChart 复用 LineChart 的坐标、提示框、参考线和无障碍能力,只增加面积填充。 适合强调单个连续指标的规模变化;比较多个轨迹时优先使用折线图,表达组成随时间变化时再引入堆叠面积能力。

示例通过 actions 组合已有的 Select 与 Button。图表不重复实现工具栏控件,也不会接管筛选状态。

属性

属性类型默认值说明
fillOpacitynumber0.14面积填充的不透明度。
showDotsbooleanfalse是否显示数据节点。
data *ChartDatum[]—每行代表一个横轴节点的数据。
title *ReactNode—图表标题,用于说明正在展示的指标。
heightnumber280图表绘图区高度,单位为像素。
descriptionReactNode—补充单位、时间范围或筛选条件的副标题。
actionsReactNode—标题右侧的操作区,适合组合 Button、Select 或业务工具栏。
xKey *string—用作横轴标签的数据字段。
series *ChartSeries[]—要绘制的数值序列。
domain[number, number]—手动指定纵轴最小值和最大值。
showGridbooleantrue是否显示水平参考网格。
showLegendbooleantrue是否在多序列时显示图例。
referenceLinesChartReferenceLine[]—目标值、均值或阈值等纵轴参考线。
yAxisFormatter((value: number) => ReactNode)—自定义纵轴刻度的显示格式。
valueFormatterChartValueFormatter—自定义数值的显示格式。
labelFormatterChartLabelFormatter—自定义横轴标签和提示框标题的显示格式。

属性名后的 * 表示必填。

事件

图表不产生业务事件。工具区中的筛选、下载和刷新行为由传入 actions 的现有组件负责。