logo

Ant Design Charts

  • 教程
  • 选项
  • 图表示例
  • 所有产品antv logo arrow
  • 2.0.0
  • 📈 图表分类
  • 统计图表
    • 图表组成
    • 图表组件 - Component
      • 标题(Title)
      • 坐标轴(Axis)
      • 图例(Legend)
      • 滚动条(Scrollbar)
      • 缩略轴(Slider)
      • 提示信息(Tooltip)
      • 数据标签(Label)
    • 核心概念 - Core
      • 视图(View)
      • 数据(Data)
        • 概览
        • custom
        • ema
        • fetch
        • filter
        • fold
        • inline
        • join
        • kde
        • log
        • map
        • pick
        • rename
        • slice
        • sort
        • sortBy
      • 比例尺(Scale)
        • 概览
        • band
        • linear
        • log
        • ordinal
        • point
        • pow
        • quantile
        • quantize
        • sqrt
        • threshold
        • time
      • 转换(Transform)
        • 概览
        • bin
        • binX
        • diffY
        • dodgeX
        • flexX
        • group
        • groupColor
        • groupX
        • groupY
        • jitter
        • jitterX
        • jitterY
        • normalizeY
        • pack
        • sample
        • select
        • selectX
        • selectY
        • sortColor
        • sortX
        • sortY
        • stackEnter
        • stackY
        • symmetryY
      • 坐标系(Coordinate)
        • 概览
        • fisheye
        • parallel
        • polar
        • radial
        • theta
        • transpose
        • cartesian3D
      • 样式(Style)
      • 动画(Animate)
        • 概览
        • fadeIn
        • fadeOut
        • growInX
        • growInY
        • morphing
        • pathIn
        • scaleInX
        • scaleInY
        • scaleOutX
        • scaleOutY
        • waveIn
        • zoomIn
        • zoomOut
      • 状态(State)
      • 交互(Interaction)
        • 概览
        • brushAxisHighlight
        • brushHighlight
        • brushXHighlight
        • brushYHighlight
        • brushFilter
        • brushXFilter
        • brushYFilter
        • chartIndex
        • elementHighlight
        • elementHighlightByColor
        • elementHighlightByX
        • elementSelect
        • elementSelectByColor
        • elementSelectByX
        • fisheye
        • legendFilter
        • legendHighlight
        • poptip
        • scrollbarFilter
        • sliderFilter
      • 复合(Composition)
        • 概览
        • facetCircle
        • facetRect
        • repeatMatrix
        • spaceFlex
        • spaceLayer
        • timingKeyframe
      • 主题(Theme)
        • 概览
        • academy
        • classic
        • classicDark
      • 事件(Event)
      • 颜色映射(Color)
    • 专有配置 - Specal Plot
      • Area 面积图
      • Bar 条形图
      • CirclePacking 捆绑图
      • DualAxes 双轴图
      • Gauge 仪表盘
      • Line 折线图
      • Rose 玫瑰图
      • Sankey 桑基图
      • Scatter 散点图
      • Sunburst 旭日图
      • Treemap 矩阵树图
      • Venn 韦恩图
      • WordCloud 词云图
      • Column 柱状图
      • Pie 饼图
      • BidirectionalBar 对称条形图
      • Box 箱线图
      • Bullet 子弹图
      • Funnel 漏斗图
      • Heatmap 热力图
      • Histogram 直方图
      • Liquid 水波图
      • Radar 雷达图
      • Stock 股票图
      • Tiny 迷你图
      • Violin 小提琴图
      • Waterfall 瀑布图
      • RadialBar 玉珏图
  • 关系图组件
    • 总览
    • MindMap 思维导图
    • Fishbone 鱼骨图
    • IndentedTree 缩进树图
    • Dendrogram 生态树图
    • OrganizationChart 组织结构图
    • FlowGraph 流程图
    • FlowDirectionGraph 流向图
    • NetworkGraph 网络图
    • FAQ

坐标轴(Axis)

上一篇
标题(Title)
下一篇
图例(Legend)

Resources

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

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

概述

Ant Design Charts 中 Axis(坐标轴) 就像是图表的 "尺子",用于建立数据与视觉位置的映射关系,并通过刻度、标签、网格线等元素帮助用户直观理解数据的分布与比例。它能帮你快速看懂图形的位置和数值大小。

简单来说,坐标轴可以帮助我们把数据数字和图表上的位置对应起来,让图表更容易理解。

举个例子:在柱状图中,横轴通常表示时间,纵轴表示销售额,这样你就能一眼看出 "3 月卖了 200 万,4 月涨到 300 万"

坐标轴使用方式示意图

构成元素

使用方式

通过前面的概述内容,相信你对坐标轴已经有了一个清晰的认识。那么具体该如何使用呢?接下来,我将手把手教你如何配置坐标轴。

配置坐标轴其实就像搭积木,只需记住一个简单的核心口诀:"用 axis 属性,按方向配置,哪里需要改哪里改。"

第一步:启用坐标轴(默认已开启)

Ant Design Charts 会根据你的数据类型 自动生成坐标轴,不需要任何配置就能看到基础坐标轴

启用坐标轴(默认已开启)

第二步:按方向单独配置

配置 x(水平方向) 坐标轴

{
"axis": {
"x": {}
}
}

配置 y(垂直方向) 坐标轴

{
"axis": {
"y": {}
}
}

配置层级

坐标轴可以在 Mark 层级配置。在 Ant Design Charts 中每个标记(Mark)都有自己的坐标轴。如果标记对应比例尺是同步的,那么坐标轴也会合并。

({
axis: {
x: { labelFormatter: '%0' },
y: { tickCount: 5 },
},
});

坐标轴也可以在 View 层级配置。坐标轴具有传递性。视图上声明的坐标轴会传递给 children 声明的标记,如果该标记有对应通道的坐标轴,就合并;否则不影响。

({
axis: {
x: { labelFormatter: '%0' },
y: { tickCount: 5 },
},
});

隐藏坐标轴

隐藏每个通道的坐标轴:

坐标轴隐藏演示

隐藏 x 坐标轴:

({
axis: { x: false }, // 隐藏 x 水平方向坐标轴
});

隐藏 y 坐标轴:

({
axis: { y: false }, // 隐藏 y 垂直方向坐标轴
});

隐藏多个坐标轴

({
axis: false,
});

配置项

每个坐标轴由 标题(title)、轴线(line)、刻度(tick)、刻度值(label)以及网格线(grid)组成。

属性描述类型默认值必选
title设置坐标轴的标题文本及其样式title-
line设置坐标轴线的显示及其样式line-
tick设置坐标轴刻度线的显示及其样式tick-
label设置坐标轴刻度值的显示及其样式label-
grid设置坐标轴网格线的显示及其样式grid-
animate设置坐标轴动画效果boolean | animate-
position设置坐标轴的位置left | right | top | bottomx: bottom | y: left

title

属性描述类型默认值必须
title关闭标题或设置标题内容false|string | number | DisplayObject-
titleSpacing标题到坐标轴的距离number | (datum, index, data) => number10
titlePosition标题相对坐标轴的位置,支持首字母简写形式,如'top'简写为't''top'|'bottom'|'left'|'right''lb'
titleFontSize标题文字大小number | (datum, index, data) => number-
titleFontWeight标题的字体粗细string | (datum, index, data) => string-
titleFontFamily标题文字字体number | (datum, index, data) => number-
titleStroke标题字体颜色string | (datum, index, data) => string-
titleStrokeOpacity标题透明度number | (datum, index, data) => number-
titleTextBaseline标题垂直基线string | (datum, index, data) => stringmiddle
titleFillOpacity标题填充透明度number | (datum, index, data) => number1
titleStroke标题描边颜色string | (datum, index, data) => stringtransparent
titleStrokeOpacity标题描边透明度number | (datum, index, data) => number1
titleLineHeight标题行高number | (datum, index, data) => number1
titleLineWidth标题描边宽度number | (datum, index, data) => number0
titleLineDash标题虚线样式number[] | (datum, index, data) => number[][]
titleOpacity标题整体透明度number | (datum, index, data) => number1
titleShadowColor标题阴影颜色string | (datum, index, data) => stringtransparent
titleShadowBlur标题阴影模糊度number | (datum, index, data) => number0
titleShadowOffsetX标题阴影 X 偏移number | (datum, index, data) => number0
titleShadowOffsetY标题阴影 Y 偏移number | (datum, index, data) => number0
titleCursor标题鼠标样式string | (datum, index, data) => stringdefault

配置方式

({
// 配置坐标轴
axis: {
// 配置 y 轴
y: {
// 这部分是轴标题的配置
title: 'Frequency', // 设置 y 轴标题
titleSpacing: 30, // 设置 y 轴标题与轴线之间的间距
titleFill: 'steelblue', // 设置 y 轴标题的颜色
},
// 配置 x 轴
x: {
// 这部分是轴标题的配置
title: 'Letter', // 设置 x 轴标题
},
},
});

line

属性描述类型默认值必须
line是否显示轴线booleanfalse
arrow是否显示箭头booleantrue
lineExtension轴线两侧的延长线[number, number]-
lineArrow定义轴线箭头形状,默认为箭头形状DisplayObject-
lineArrowOffset箭头偏移长度number15
lineArrowSize箭头尺寸number-
lineLineWidth轴线宽度number | (datum, index, data) => number-
lineLineDash轴线描边的虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。lineDash 设为[0, 0]的效果为没有描边。[number,number]-
lineOpacity轴线整体透明度number1
lineStroke轴线描边色string-
lineStrokeOpacity轴线描边色透明度number-

配置方式

({
axis: {
x: {
line: true, // 是否显示轴线
arrow: true, // 是否显示箭头
lineArrowOffset: 10, // 箭头偏移长度
lineArrowSize: 30, // 箭头尺寸
lineLineWidth: 10, // 轴线宽度
},
y: {
line: true, // 是否显示轴线
arrow: true, // 是否显示箭头
lineArrowOffset: 10, // 箭头偏移长度
lineArrowSize: 30, // 箭头尺寸
lineLineWidth: 10, // 轴线宽度
},
},
});

tick

属性描述类型默认值必须
tick是否显示刻度booleantrue
tickFilter刻度线过滤(datum, index, data)=>boolean-
tickFormatter刻度线格式化,可用于自定义刻度样式,回调函数中会额外返回该刻度的方向DisplayObject | (datum, index, data, Vector)=> DisplayObject-
tickDirection刻度朝向,为 positive 时,位于侧轴方向(即主轴顺时针 90 度方向), 为 negative 时,刻度位于侧轴负方向'positive' | 'negative'positive
tickLength刻度线长度number|(datum, index, data)=>number15
tickLineWidth刻度线宽度number | (datum, index, data, Vector)=>number-
tickLineDash刻度线描边的虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。lineDash 设为[0, 0]的效果为没有描边。[number,number] | (datum, index, data, Vector)=>[number,number]-
tickStroke刻度线颜色string | (datum, index, data, Vector)=>string-
tickStrokeOpacity刻度线透明度number | (datum, index, data, Vector)=>number-
({
// 配置坐标轴
axis: {
y: {
tickLength: 20, // 设置 y 轴刻度线的长度
tickFilter: (_, i) => i % 3 !== 0, // 过滤 y 轴刻度线,只显示每隔 3 个刻度线
},
},
});

label

属性描述类型默认值必须
label是否显示刻度值boolean-
labelFontSize刻度值文字大小number | (datum, index, data)=>number-
labelOpacity刻度值透明度number | (datum, index, data)=>number-
labelFontWeight刻度值字体粗细number |(datum, index, data)=>number-
labelFontFamily刻度值文字字体string | (datum, index, data)=>string-
labelAlign刻度值对齐方式
- 'horizontal' 始终保持水平
- 'parallel' 平行于坐标轴
- 'perpendicular' 垂直于坐标轴
'horizontal' | 'parallel' | 'perpendicular'parallel
labelFilter刻度值过滤(datum, index, data)=> boolean-
labelFormatter刻度值线格式化DisplayObject | (datum, index, data, Vector)=> DisplayObject-
transform刻度值转换,避免文本之间发生重叠。当前支持超长文本缩略、重叠刻度值隐藏、自动旋转Transform[]-
labelAutoHide自动隐藏重叠的刻度值,设置 size 值的时候生效boolean | HideOverlapCfg-
labelAutoRotate自动旋转刻度,设置 size 值的时候生效值boolean | RotateOverlapCfg-
labelAutoEllipsis自动缩略刻度值,设置 size 值的时候生效boolean | EllipsisOverlapCfg-
labelAutoWrap自动换行刻度值,设置 size 值的时候是生效boolean | WrapOverlapCfg-
labelDirection刻度值位于轴线的位置,参考tickDirection'positive' | 'negative'positive
labelSpacing刻度值到其对应刻度的间距number0
labelLineWidth刻度值宽度number |(datum, index, data)=>number-
labelLineDash刻度值描边的虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。lineDash 设为[0, 0]的效果为没有描边。[number,number] | (datum, index, data)=>[number, number]-
labelFill刻度值字体颜色string | (datum, index, data)=>string-
labelFillOpacity刻度值文本透明度number | (datum, index, data)=>number-
labelStroke刻度值文本描边颜色string | (datum, index, data)=>string-
labelStrokeOpacity刻度值文本描边透明度number | (datum, index, data)=>number-

labelFormatter 视觉通道用于调整标签的格式。

{
"axis": {
"y": {
"title": "销售额"
},
"x": {
"title": "月份",
"labelFontSize": 12
}
}
}

transform 为了避免刻度标签重叠或超出显示范围,系统提供了多种优化方式,包括缩略、旋转、隐藏和换行。 这些功能可通过两种方式配置:

  1. transform 数组(多策略组合)
  2. labelAutoXXX 系列属性(单策略快捷配置)推荐

两者的核心功能完全一致,区别在于使用场景和配置方式。

  1. transform 数组(多策略组合)
{
"axis": {
"y": {
"title": "y 轴标题"
},
"x": {
"title": "x 轴标题",
"labelFontSize": 12,
"transform": [
{
"suffix": "..",
"minLength": 8,
"maxLength": 12
},
{
"wordWrapWidth": 80,
"maxLines": 2,
"recoverWhenFailed": true
},
{
"optionalAngles": [
0,
45,
90
],
"recoverWhenFailed": true
},
{
"keepHeader": true,
"keepTail": true
}
]
}
}
}
  1. 使用 labelAutoHide、labelAutoRotate、labelAutoEllipsis、labelAutoWrap、 属性(需设置 size)
{
"axis": {
"y": {
"title": "y 轴标题"
},
"x": {
"title": "x 轴标题",
"labelFontSize": 12,
"size": 100,
"labelAutoEllipsis": {
"suffix": "..",
"minLength": 8,
"maxLength": 12
},
"labelAutoWrap": {
"wordWrapWidth": 80,
"maxLines": 2,
"recoverWhenFailed": true
},
"labelAutoRotate": {
"optionalAngles": [
0,
45,
90
],
"recoverWhenFailed": true
},
"labelAutoHide": {
"keepHeader": true,
"keepTail": true
}
}
}
}
export interface Transform {
/** 避免刻度值重叠时的额外边距 */
margin?: number[];
}
export interface EllipsisOverlapCfg extends Transform {
type: 'ellipsis';
/** 缩略替换字符,默认为 ... */
suffix?: string;
/** 文本短于该长度时不再缩略 */
minLength: string | number;
/** 文本短于该长度时一定会进行缩略 */
maxLength?: string | number;
/** 每次缩略执行步长 */
step?: string | number;
}
export interface RotateOverlapCfg extends Transform {
type: 'rotate';
/** 可选的旋转角度值 */
optionalAngles: number[];
/** 当旋转无法避免重叠时,是否恢复为默认旋转角度 */
recoverWhenFailed?: boolean;
}
export interface HideOverlapCfg extends Transform {
type: 'hide';
/** 保证第一个刻度值不被隐藏 */
keepHeader?: boolean;
/** 保证最后一个刻度值不被隐藏 */
keepTail?: boolean;
}
export interface WrapOverlapCfg extends Transform {
type: 'wrap';
/** 单行最大宽度 */
wordWrapWidth?: number;
/** 最大行数 */
maxLines?: number;
recoverWhenFailed?: boolean;
}

grid

在不同坐标系下网格线会具有不同的样式

场景标签样式
直角坐标系linear-grid
极坐标系circle-grid
极坐标系polar-grid
极坐标系 雷达图polygon-grid
属性描述类型默认值必须
grid是否显示网格线booleanfalse
gridFilter网格线过滤(datum, index, data)=> boolean-
gridLength网格线长度。一般情况下,不需要用户配置。number | (datum, index, data)=> number0
gridAreaFill网格线区域颜色string | string[]| (datum, index, data)=> string-
gridLineWidth网格线宽度number-
gridLineDash网格线描边的虚线配置,第一个值为虚线每个分段的长度,第二个值为分段间隔的距离。lineDash 设为[0, 0]的效果为没有描边。[number,number]-
gridStroke网格线颜色string-
gridStrokeOpacity网格线透明度number-

animate

支持设置更新时的动画效果

属性描述类型默认值必须
animate是否开启动画boolean | EffectTiming-

EffectTiming 支持配置的属性如下:

属性描述类型默认值必须
delay延迟执行时间 (ms)number-
duration动画持续时间 (ms)number-
easing动画的缓动函数Easing-
endDelay延迟执行时间 (ms)number-
fill动画处于非运行状态时的展示效果Fill-

事件

坐标轴(axis)组件本身没有专属的事件类型。

示例

{
"marginTop": 40,
"axis": {
"x": {
"position": "bottom",
"title": "x 轴标题",
"titleFontWeight": 500,
"grid": true,
"gridLineWidth": 2,
"line": true,
"lineLineWidth": 5,
"lineStroke": "#f50",
"tick": true,
"tickLineWidth": 5,
"tickLength": 10,
"tickStroke": "#3366ff",
"label": true,
"labelFontSize": 12,
"labelFill": "#009900",
"labelFontWeight": 500
},
"y": {
"position": "left",
"title": "y 轴标题",
"titleFontWeight": 500,
"grid": true,
"gridLineWidth": 2,
"line": true,
"lineLineWidth": 5,
"lineStroke": "#f50",
"tick": true,
"tickLineWidth": 5,
"tickLength": 10,
"tickStroke": "#3366ff",
"label": true,
"labelFontSize": 12,
"labelFill": "#009900",
"labelFontWeight": 500
}
}
}

更多的案例,可以查看 图表示例 - 坐标轴 页面。