图表
面积图 Area Chart
在折线趋势下增加克制填充,用于强调连续数值的规模。
基础用法
Loading…
pnpm dlx @wui-design/cli@latest add @wui/area-chart"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。图表不重复实现工具栏控件,也不会接管筛选状态。
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| fillOpacity | number | 0.14 | 面积填充的不透明度。 |
| showDots | boolean | false | 是否显示数据节点。 |
| data * | ChartDatum[] | — | 每行代表一个横轴节点的数据。 |
| title * | ReactNode | — | 图表标题,用于说明正在展示的指标。 |
| height | number | 280 | 图表绘图区高度,单位为像素。 |
| description | ReactNode | — | 补充单位、时间范围或筛选条件的副标题。 |
| actions | ReactNode | — | 标题右侧的操作区,适合组合 Button、Select 或业务工具栏。 |
| xKey * | string | — | 用作横轴标签的数据字段。 |
| series * | ChartSeries[] | — | 要绘制的数值序列。 |
| domain | [number, number] | — | 手动指定纵轴最小值和最大值。 |
| showGrid | boolean | true | 是否显示水平参考网格。 |
| showLegend | boolean | true | 是否在多序列时显示图例。 |
| referenceLines | ChartReferenceLine[] | — | 目标值、均值或阈值等纵轴参考线。 |
| yAxisFormatter | ((value: number) => ReactNode) | — | 自定义纵轴刻度的显示格式。 |
| valueFormatter | ChartValueFormatter | — | 自定义数值的显示格式。 |
| labelFormatter | ChartLabelFormatter | — | 自定义横轴标签和提示框标题的显示格式。 |
属性名后的 * 表示必填。
事件
图表不产生业务事件。工具区中的筛选、下载和刷新行为由传入 actions 的现有组件负责。