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

K 线图 - Candlestick

上一篇
面积 - Area
下一篇
坐标轴 - Axis

资源

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...

用于 K 线图, 继承自 几何标记 Geometry

Usage

import { Axis, Candlestick, Canvas, Chart, jsx } from '@antv/f2';
const data = [
{
time: '2017-10-24',
// 格式为:[open, close, lowest, highest]
value: [20, 34, 10, 38],
},
{
time: '2017-10-25',
value: [40, 35, 30, 50],
},
{
time: '2017-10-26',
value: [31, 38, 33, 44],
},
{
time: '2017-10-27',
value: [38, 15, 5, 42],
},
];
const { props } = (
<Canvas context={context}>
<Chart data={data}>
<Axis field="time" />
<Axis field="value" />
<Candlestick x="time" y="value" />
</Chart>
</Canvas>
);

数据结构说明

y 轴字段格式为:[open, close, lowest, highest] 分别代表:[开盘价, 收盘价, 最低价, 最高价]

Props

Candlestick 组件继承自 Geometry,支持以下属性(包含继承的通用属性和 Candlestick 特有属性):

属性概览

属性名类型必填默认值描述
xstring是-x 轴的数据映射字段名
ystring是-y 轴的数据映射字段名
colorobject否{ range: ['#E62C3B', '#0E9976', '#999999'] }涨跌颜色,详见下方
sizeRationumber否0.5矩形大小比例,范围 [0, 1]
viewClipboolean否false是否只显示图表区域内(两轴之间)的部分
startOnZeroboolean否falsey 轴是否需要从 0 开始
animationobject否-动画配置,详见下方
styleobject否-图形样式,详见下方

color 属性

Candlestick 的 color 用于设置「涨」、「跌」、「平盘」三种状态的颜色。

仅支持对象形式,通过 range 属性指定三种颜色:

属性类型必填默认值描述
range[string, string, string]否['#E62C3B', '#0E9976', '#999999'][上涨颜色, 下跌颜色, 平盘颜色]

注意:Candlestick 的 color 仅支持 range 属性,不支持 field、callback 等其他属性。组件会根据价格变动自动选择对应的颜色。

// 自定义涨跌颜色
<Candlestick
x="time"
y="value"
color={{ range: ['#ff4d4f', '#52c41a', '#d9d9d9'] }} // 红涨、绿跌、灰平
/>

sizeRatio 属性

矩形的大小比例,范围 [0, 1],默认为 0.5,表示矩形的宽度占可用空间的 50%。

值效果
0.5 (默认)矩形宽度和空白处各占 50%
0.8矩形更宽,空白更窄
1.0矩形占满整个空间,无间隙
<Candlestick x="time" y="value" sizeRatio={0.8} />

style 属性

Candlestick 组件支持的常用样式属性:

属性名类型默认值描述
fillstring-填充颜色(K线实体颜色)
fillOpacitynumber1填充透明度,范围 0-1
strokestring-描边颜色(K线影线颜色)
strokeWidthnumber2描边宽度(影线宽度)
strokeOpacitynumber1描边透明度,范围 0-1
radiusstring | number[]'2px'实体矩形圆角半径
lineCap'butt' | 'round' | 'square''round'影线端点样式
opacitynumber1整体透明度,范围 0-1
shadowColorstring-阴影颜色
shadowBlurnumber0阴影模糊程度
cursorstring-鼠标样式

使用示例:

// 自定义涨跌颜色
<Candlestick
x="time"
y="value"
color={{ range: ['#E62C3B', '#0E9976', '#999999'] }}
/>
// color 属性已控制涨跌色,style 可用于其他样式
// 设置圆角矩形
<Candlestick
x="time"
y="value"
style={{
radius: '2px'
}}
/>
// 调整影线宽度
<Candlestick
x="time"
y="value"
style={{
strokeWidth: 1, // 更细的影线
strokeOpacity: 0.8
}}
/>
// 半透明效果
<Candlestick
x="time"
y="value"
style={{
fillOpacity: 0.7,
strokeOpacity: 0.8,
opacity: 0.9
}}
/>
// 渐变填充(K线实体)
<Candlestick
x="time"
y="value"
style={{
fill: 'linear-gradient(180deg, rgba(230, 44, 59, 0.8), rgba(230, 44, 59, 0.4))',
stroke: '#E62C3B'
}}
/>
// 带阴影效果
<Candlestick
x="time"
y="value"
style={{
shadowColor: 'rgba(0, 0, 0, 0.2)',
shadowBlur: 6
}}
/>

更多样式属性(如渐变、纹理、裁剪等)请参考:绘图属性完整文档

注意: Candlestick 的 color 属性专门用于控制涨跌颜色,style.fill 会覆盖此设置。建议使用 color 属性设置涨跌色,style 仅用于其他样式效果(如圆角、阴影、透明度等)。


animation 属性

动画配置按阶段划分,三个阶段(appear/update/leave)支持相同的属性结构:

阶段属性类型必填默认值描述
appeareasingstring | function否'linear'缓动函数,可选值见下方
(元素进场)durationnumber否300动画时长 (ms)
delaynumber否0延迟时间 (ms)
propertystring[]否-变化的属性数组
startobject否-起始状态,结构见下表
endobject否-结束状态,结构见下表
updateeasingstring | function否'linear'缓动函数,可选值见下方
(数据更新)durationnumber否300动画时长 (ms)
delaynumber否0延迟时间 (ms)
propertystring[]否-变化的属性数组
startobject否-起始状态,结构见下表
endobject否-结束状态,结构见下表
leaveeasingstring | function否'linear'缓动函数,可选值见下方
(元素离场)durationnumber否300动画时长 (ms)
delaynumber否0延迟时间 (ms)
propertystring[]否-变化的属性数组
startobject否-起始状态,结构见下表
endobject否-结束状态,结构见下表

注意: 三个阶段的属性结构完全相同,可根据需要单独配置某个阶段。Candlestick 由影线(line)和实体(rect)两部分组成,动画会同时作用于这两部分。

动画状态对象 (start/end)

属性类型描述
fillOpacitynumber填充透明度,范围 0-1
opacitynumber整体透明度,范围 0-1
xnumberx 坐标
ynumbery 坐标
strokestring描边颜色
lineWidthnumber线宽
heightnumber矩形高度(Candlestick 特有)

缓动函数 (easing)

值描述
'linear'线性
'ease-in' / 'in'加速
'ease-out' / 'out'减速
'ease-in-out' / 'in-out'先加速后减速
'ease-out-in' / 'out-in'先减速后加速

更多缓动函数可见:easing 函数源码

动画配置示例

默认动画配置(组件内置):

// Candlestick 组件默认使用从底部向上生长的效果
<Candlestick x="time" y="value" />
// 内置配置: { appear: { easing: 'linear', duration: 300, property: ['y', 'height'], start: { y: y0, height: 0 } } }

自定义生长动画:

// 使用减速效果,更自然的生长感
<Candlestick
x="time"
y="value"
animation={{
appear: {
easing: 'ease-out',
duration: 600,
property: ['y', 'height'],
start: { height: 0 }
}
}}
/>

淡入效果:

// K线淡入显示
<Candlestick
x="time"
y="value"
animation={{
appear: {
easing: 'ease-out',
duration: 800,
property: ['opacity'],
start: { opacity: 0 },
end: { opacity: 1 }
}
}}
/>

仅影线动画:

// 只对上下影线应用动画
<Candlestick
x="time"
y="value"
animation={{
appear: {
easing: 'linear',
duration: 500,
property: ['y1', 'y2'], // 影线的 y1, y2 属性
start: { y1: 0, y2: 0 }
}
}}
/>

配置多个动画阶段:

<Candlestick
x="time"
y="value"
animation={{
appear: {
easing: 'ease-out',
duration: 600,
property: ['y', 'height'],
start: { height: 0 }
},
update: {
easing: 'linear',
duration: 300,
property: ['x', 'y', 'width', 'height']
},
leave: {
easing: 'ease-in',
duration: 300,
property: ['opacity', 'height'],
end: { opacity: 0, height: 0 }
}
}}
/>

禁用动画:

<Candlestick
x="time"
y="value"
animation={false}
/>

方法