logo

F2

  • 教程
  • 组件API
  • 图表示例
  • 所有产品antv logo arrow
  • 5.10.0
  • 顶层 API - F2
  • 组件 - Component
  • 画布 - Canvas
  • 时间轴 - Timeline
  • 图表 - Chart
    • 图表 - Chart
    • 几何标记 - Geometry
    • 线 - Line
    • 区间 - Interval
    • 点 - Point
    • 面积 - Area
    • K 线图 - Candlestick
    • 坐标轴 - Axis
    • 图例 - Legend
    • 提示 - tooltip
    • 饼图标签 - PieLabel
    • 标注 - Guide
      • 标签标注 - TagGuide
      • 点标注 - PointGuide
      • 辅助线标注 - LineGuide
      • 矩形标注 - RectGuide
      • 图片标注 - ImageGuide
      • 文本标注 - TextGuide
      • 标注 - Guide
    • 滚动条 - ScrollBar
    • 放大镜 - Magnifier
  • 仪表盘 - Gauge
  • 旭日图 - Sunburst
  • 矩形树图 - Treemap

图表 - Chart

上一篇
时间轴 - Timeline
下一篇
几何标记 - Geometry

资源

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库
WeaveFox-前端智能研发

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会
weavefoxWeaveFox-智能研发技术社区

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
weavefoxWeaveFox-前端智能研发
© Copyright 2026 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

图表组件,用于创建各类统计图表。Chart 组件是 F2 的核心组件,提供坐标系、度量、数据过滤等功能。

Usage

import { Canvas, Chart, Interval } from '@antv/f2';
const data = [
{ genre: 'Sports', sold: 5 },
{ genre: 'Strategy', sold: 10 },
{ genre: 'Action', sold: 20 },
{ genre: 'Shooter', sold: 20 },
{ genre: 'Other', sold: 40 },
];
<Canvas context={context}>
<Chart data={data}>
<Interval x="genre" y="sold" color="genre" />
</Chart>
</Canvas>

TypeScript 泛型

Chart 支持泛型以获得完整的类型推断:

<Chart<MyDataType> data={data}>
...
</Chart>

TypeScript 类型定义

interface ChartProps<TRecord extends DataRecord = DataRecord> {
/** 数据源,必填 */
data: Data<TRecord>;
/** 度量配置 */
scale?: DataRecordScale<TRecord>;
/** 坐标系配置 */
coord?: CoordType | CoordProps;
/** 图表容器样式 */
style?: GroupStyleProps;
/** 主题配置 */
theme?: Record<string, any>;
/** 子组件 */
children?: any;
}
type DataRecord = Record<string, any>;
type Data<TRecord> = TRecord[];
type ScaleType = 'identity' | 'linear' | 'cat' | 'timeCat' | 'log' | 'pow';
type CoordType = 'rect' | 'polar';

Props

data

必填。可视化数据源,类型为对象数组。

scale

图表的度量设置,用于定义数据字段的度量类型和配置。未指定 type 时会根据数据类型自动推断:

  • 数值类型 → linear
  • 字符串类型 → cat
  • 常量字段 → identity

通用属性

所有度量类型都支持的属性:

属性类型默认值说明
typeScaleType自动推断度量类型
formatter(value) => string | number-格式化坐标轴刻度点文本
range[number, number][0, 1]输出数据范围
aliasstring-字段显示别名
tickCountnumber-坐标轴刻度点个数
ticksstring[] | number[]-指定刻度点文本
sortableboolean-数据已排序时设为 false 可提升性能

linear 度量

连续数值类型的度量,type 可省略:

scale={{
sold: { min: 0, max: 100, nice: true },
}}
属性类型默认值说明
nicebooleantrue优化数值范围,使刻度均匀分布
minnumber自动计算最小值
maxnumber自动计算最大值
tickIntervalnumber-刻度间隔

cat 度量

分类类型的度量,type 可省略:

scale={{
genre: { values: ['Sports', 'Strategy', 'Action'] },
}}
属性类型默认值说明
valuesstring[]-指定分类值及其顺序
isRoundingbooleanfalse计算刻度时是否取整

timeCat 度量

时间分类类型的度量,通常需要声明 type:

scale={{
date: { type: 'timeCat', mask: 'YYYY-MM-DD' },
}}
属性类型默认值说明
maskstring'YYYY-MM-DD'日期格式化格式
valuesstring[]-指定分类值及其顺序

度量详细介绍可见:度量

coord

图表的坐标系配置。

rect 直角坐标系

type 可省略(默认为 rect):

coord={{ transposed: true }}
属性类型默认值说明
type'rect''rect'坐标系类型
transposedbooleanfalse是否翻转坐标系

polar 极坐标系

coord={{
type: 'polar',
startAngle: -Math.PI / 2,
endAngle: Math.PI * 1.5,
radius: 0.8,
innerRadius: 0.5,
}}
属性类型默认值说明
type'polar'-坐标系类型
transposedbooleanfalse是否翻转坐标系
startAnglenumber-起始弧度
endAnglenumber-结束弧度
innerRadiusnumber-内半径,0-1 范围
radiusnumber-半径,0-1 范围
innernumber-已弃用,请使用 innerRadius

坐标系详细介绍可见:坐标系

style

图表容器的样式属性,继承自 @antv/g-base 的 GroupStyleProps。支持数字和字符串单位:

style={{
left: 50,
top: 0,
width: '100%',
height: '100%',
padding: ['40px', '40px', '40px', '40px'],
}}

theme

图表主题配置,用于覆盖默认主题样式。传入的配置会与默认主题深度合并:

theme={{
chart: { padding: ['40px', '40px', '40px', '40px'] },
colors: ['#1890FF', '#2FC25B', '#FACC14'],
}}

常用配置项

配置项类型默认值说明
chart.paddingstring[] | number[]['30px', '30px', '30px', '30px']图表内边距
colorsstring[]见源码默认配色数组
axisobject见源码坐标轴配置,见 Axis 文档

完整默认主题见 packages/f2/src/theme.ts。