图表API
init(ds, options)
(
ds: string | HTMLElement,
options?: {
layout?: Array<{
type: 'candle' | 'indicator' | 'xAxis'
content: Array<Indicator | string>
options: {
id?: string
height?: number
minHeight?: number
dragEnabled?: boolean
position?: 'top' | 'bottom'
gap?: {
top?: number
bottom?: number
}
axisOptions?: {
name?: string
scrollZoomEnabled?: boolean
}
}
}>
locale?: string
styles?: string | object
timezone?: string
customApi?: {
formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
formatBigNumber?: (value: string | number) => string
}
thousandsSeparator?: string
decimalFoldThreshold?: number
}
) => Chart初始化一个图表,返回图表实例。
ds容器,可以是dom元素或者元素id。options可选配置项。layout自定义布局,content中的内容和options参考实例方法 createIndicator 中的入参value和options。 ^9.6.0locale语言,内置支持zh-CN和en-US。timezone时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表。styles可以是通过klinecharts.registerStyles注册的样式名,也可以是object,样式列表,详情参阅样式,支持增量。customApi自定义一些api。formatDate格式化日期。formatBigNumber格式化大的数字,如1000转换成1k,1000000转换为1M等。
thousandsSeparator千分符decimalFoldThreshold小数折叠阈值 ^9.8.0
dispose(dcs)
(dcs: HTMLElement | Chart | string) => void销毁一个图表,一旦销毁,图表将不再可用。
dcs可以是dom元素、元素id或者图表实例。
registerLocale(locale, locales)
(
locale: string,
locales: {
time: string
open: string
high: string
low: string
close: string
volume: string
}
) => void添加一个本地化语言。图表内置了zh-CN和en-US。
locale语言名locales语言配置
getOverlayClass()
(name: string) => Nullable<OverlayConstructor>根据覆盖物名称获取图表内覆盖物的属性。
getSupportedLocales()
() => string[]获取图表支持的本地化语言类型。
registerStyles(name, styles)
(
name: string,
styles: object
) => void添加一个样式配置。
name样式名styles样式配置,类型参阅样式,支持增量。
registerFigure(figure)
(
figure: {
name: string
draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
}
) => void添加一个基础图形。
figure基础图形信息,详情参阅基础图形name名字,唯一标识draw绘制方法checkEventOn检查事件是否在图形上
getSupportedFigures()
() => string[]获取图表支持的基础图形类型。
getFigureClass(name)
(name: string) => Figure获取图形类
name图形名
registerIndicator(indicator)
(
indicator: {
name: string
shortName?: string
precision?: number
calcParams?: any[]
shouldOhlc?: boolean
shouldFormatBigNumber?: boolean
visible?: boolean
extendData?: any
series?: 'normal' | 'price' | 'volume'
figures?: Array<{
key: string
title?: string
type?: string
baseValue?: number
attrs?: ({
data: object
coordinate: object
bounding: object
barSpace: object
xAxis: object
yAxis: object
}) => object
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => object
}>
minValue?: number
maxValue?: number
styles?: object
calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
regenerateFigures?: (calcParms: any[]) => Array<{
key: string
title?: string
type?: string
baseValue?: number
styles?: (
data: object,
indicator: object,
defaultStyles: object
) => object
attrs: (
coordinate: object
bounding: Bounding
barSpace: BarSpace
xAxis: XAxis
yAxis: YAxis
) => object
}>
createTooltipDataSource?: (params: object) => {
name?: string
calcParamsText?: string
values?: Array<{
title: string | {
text: string
color: string
}
value: string | {
text: string
color: string
}
}>
}
draw?: (params: object) => boolean
}
) => void添加一个技术指标。
indicator技术指标信息name指标名,用于创建和操作的唯一标识shortName简短名字,用于显示precision精度calcParams计算参数shouldOhlc是否需要ohlc辅助图形shouldFormatBigNumber是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等visible是否可见extendData扩展数据series指标系列,可选项有'normal','price'和'volume'figures图形配置minValue指定最小值maxValue指定最大值styles样式calc计算方法regenerateFigures重新生成图形信息方法createTooltipDataSource创建自定义提示信息方法draw自定义绘制方法
getSupportedIndicators()
() => string[]获取图表支持的技术指标
registerOverlay(overlay)
(
overlay: {
name: string
totalStep?: number
lock?: boolean
visible?: boolean
zLevel?: number
needDefaultPointFigure?: boolean
needDefaultXAxisFigure?: boolean
needDefaultYAxisFigure?: boolean
mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
modeSensitivity?: number
points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
extendData?: any
styles?: object
createPointFigures?: (params: object) => {
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
} | Array<{
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
}>
createXAxisFigures?: (params: object) => {
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
} | Array<{
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
}>
createYAxisFigures?: (params: object) => {
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
} | Array<{
key?: string
type: string
attrs: any | any[]
styles?: any
ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
}>
performEventPressedMove?: (params: object) => void
performEventMoveForDrawing?: (params: object) => void
onDrawStart?: (event: object) => boolean
onDrawing?: (event: object) => boolean
onDrawEnd?: (event: object) => boolean
onClick?: (event: object) => boolean
onDoubleClick?: (event: object) => boolean
onRightClick?: (event: object) => boolean
onPressedMoveStart?: (event: object) => boolean
onPressedMoving?: (event: object) => boolean
onPressedMoveEnd?: (event: object) => boolean
onMouseEnter?: (event: object) => boolean
onMouseLeave?: (event: object) => boolean
onRemoved?: (event: object) => boolean
onSelected?: (event: object) => boolean
onDeselected?: (event: object) => boolean
}
) => void添加一个覆盖物。
overlay覆盖物信息,详情参阅覆盖物name覆盖物名,用于创建的唯一标识totalStep总的实现步骤lock是否锁定不让拖动visible是否可见zLevel绘制层级,值越大,越靠前显示needDefaultPointFigure是否需要默认的点对应的图形needDefaultXAxisFigure是否需要默认的x轴上的图形needDefaultYAxisFigure是否需要默认的y轴上的图形mode模式,可选项有'normal','weak_magnet'和'strong_magnet'modeSensitivity模式灵敏度,仅 mode 是 weak_magnet 时有效 ^9.5.0points点信息extendData扩展数据styles样式createPointFigures创建点对应的图形createXAxisFigures创建x轴上的图形createYAxisFigures创建y轴上的图形performEventPressedMove按住移动事件特殊处理方法performEventMoveForDrawing移动事件过程中特殊处理方法onDrawStart开始绘制事件onDrawing绘制中事件onDrawEnd绘制结束事件onClick点击事件onDoubleClick双击事件 ^9.5.0onRightClick右击事件onPressedMoveStart按住开始移动事件onPressedMoving按住移动中事件onPressedMoveEnd按住移动结束事件onMouseEnter鼠标移入事件onMouseLeave鼠标移出事件onRemoved删除事件onSelected选中事件onDeselected取消选中事件
getSupportedOverlays()
() => string[]获取图表支持的覆盖物
registerXAxis(axis) ^9.8.0
(
axis: {
name: string
createTicks: (params: object) => Array<{
coord: number
value: number | string
text: string
}>
}
) => void添加一个自定义x轴。
axis坐标信息name坐标轴名字createTicks创建分割文字
registerYAxis(axis) ^9.8.0
(
axis: {
name: string
createTicks: (params: object) => Array<{
coord: number
value: number | string
text: string
}>
}
) => void添加一个自定义y轴。
axis坐标信息name坐标轴名字createTicks创建分割文字
version()
() => string获取图表当前版本号。
utils
辅助方法集合。
utils.clone(target)
(target: any) => any深度复制。
utils.merge(target, source)
(target: object, source: object) => void将一个对象合并到另一个对象。
utils.isString(value)
(value: any) => boolean检查某个值是否是字符串。
utils.isNumber(value)
(value: any) => boolean检查某个值是否是数字。
utils.isValid(value)
(value: any) => boolean检查某个值是否有效。
utils.isObject(value)
(value: any) => boolean检查某个值是否是对象。
utils.isFunction(value)
(value: any) => boolean检查某个值是否是方法。
utils.isBoolean(value)
(value: any) => boolean检查某个值是否是bool值。
utils.formatValue(value, key, defaultValue)
(data: any, key: string, defaultValue?: any) => any从某个值取对应的值,支持嵌套,如const o = { a: { b: { c: 1 } } },formatValue(o, 'a.b.c')取c的值。
utils.formatPrecision(value)
(value: string | number, precision?: number) => string格式化精度。
utils.formatBigNumber(value)
(value: string | number) => string格式化大的数字,如1000转换成1k,1000000转换为1M等。
utils.formatDate(dateTimeFormat, timestamp, format)
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string格式化日期。format格式,如'YYYY-MM-DD HH:mm:ss'。
utils.formatThousands(value, sign)
(value: string | number, sign: string) => string格式化日期千分符。
utils.formatFoldDecimal(value, threshold) ^9.8.0
(value: string | number, threshold: number) => string格式化折叠小数。
utils.calcTextWidth(text, size, weight, family) ^9.3.0
(text: string, size?: number, weight?: string | number, family?: string) => number计算文字宽度
utils.getLinearSlopeIntercept(coordinate1, coordinate2)
(
coordinate1: {
x: number
y: number
},
coordinate2: {
x: number
y: number
}
) => []根据两个坐标点,获取点组成的线的斜率和常数项,即y = kx + b中的k和b。
utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)
(
coordinate1: {
x: number
y: number
},
coordinate2: {
x: number
y: number
}
targetCoordinate: {
x: number
y: number
}
) => number获取一个点在另外两个坐标点形成的线上的y轴坐标值。
utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)
(
kb: Array<number>,
targetCoordinate: {
x: number
y: number
}
) => number获取一个点在斜率和常数项形成的线上的y轴坐标值。
utils.checkCoordinateOnArc(coordinate, arc)
(
coordinate: {
x: number
y: number
},
arc: {
x: number
y: number
r: number
startAngle: number
endAngle: number
}
) => boolean检查某个坐标点是否在圆弧上。
coordinate坐标点信息arc圆弧参数x圆心的x轴值y圆心的y轴值r半径startAngle起始角度endAngle结束角度
utils.checkCoordinateOnCircle(coordinate, circle)
(
coordinate: {
x: number
y: number
},
circle: {
x: number
y: number
r: number
}
) => boolean检查某个坐标点是否在圆上。
coordinate坐标点信息circle圆参数x圆心的x轴值y圆心的y轴值r半径
utils.checkCoordinateOnLine(coordinate, line)
(
coordinate: {
x: number
y: number
},
line: {
coordinates: Array<{
x: number
y: number
}>
}
) => boolean检查某个坐标点是否在线上。
utils.checkCoordinateOnPolygon(coordinate, polygon)
(
coordinate: {
x: number
y: number
},
polygon: {
coordinates: Array<{
x: number
y: number
}>
}
) => boolean检查某个坐标点是否在多边形上。
utils.checkCoordinateOnRect(coordinate, rect)
(
coordinate: {
x: number
y: number
},
rect: {
x: number
y: number
width: number
height: number
}
) => boolean检查某个坐标点是否在矩形上。
coordinate坐标点信息rect矩形参数x起始点x轴值y起始点y轴值width宽度height高度
utils.checkCoordinateOnText(coordinate, text, styles)
(
coordinate: {
x: number
y: number
},
text: {
x: number
y: number
text: any
align?: 'center' | 'end' | 'left' | 'right' | 'start'
baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
},
styles: {
color?: string
size?: number
family?: string
weight?: number | string
}
) => boolean检查某个坐标点是否在文字上。
coordinate坐标点信息text文字参数x起始点x轴值y起始点y轴值text文字内容align水平对齐方式baseline垂直对齐方式
styles样式color颜色size尺寸family字体weight权重
utils.drawArc(ctx, arc, styles)
(
ctx: CanvasRenderingContext2D,
arc: {
x: number
y: number
r: number
startAngle: number
endAngle: number
},
styles: {
style?: 'solid' | 'dashed'
size?: number
color?: string
dashedValue?: number[]
}
) => void绘制圆弧。
ctx画布上下文arc圆弧参数x圆心的x轴值y圆心的y轴值r半径startAngle起始角度endAngle结束角度
styles样式style弧样式size粗细color颜色dashedValue虚线参数值
utils.drawCircle(ctx, circle, styles)
(
ctx: CanvasRenderingContext2D,
circle: {
x: number
y: number
r: number
},
styles: {
style?: 'stroke' | 'fill' | 'stroke_fill'
color?: string | CanvasGradient
borderColor?: string
borderSize?: number
borderStyle?: 'solid' | 'dashed'
borderDashedValue?: Array<number>
}
) => void绘制圆。
ctx画布上下文circle圆参数x圆心的x轴值y圆心的y轴值r半径
styles样式style样式color颜色borderColor边框颜色borderSize边框粗细borderStyle边框样式borderDashedValue边框虚线参数值
utils.drawLine(ctx, line, styles)
(
ctx: CanvasRenderingContext2D,
line: {
coordinates: Array<{
x: number
y: number
}>
},
styles: {
style?: 'solid' | 'dashed'
size?: number
color?: string
dashedValue?: number[]
}
) => void绘制线。
ctx画布上下文line线参数styles样式style线样式size粗细color颜色dashedValue虚线参数值
utils.drawPolygon(ctx, polygon, styles)
(
ctx: CanvasRenderingContext2D,
polygon: {
coordinates: Array<{
x: number
y: number
}>
},
styles: {
style?: 'stroke' | 'fill' | 'stroke_fill'
color?: string | CanvasGradient
borderColor?: string
borderSize?: number
borderStyle?: 'solid' | 'dashed'
borderDashedValue?: Array<number>
}
) => void绘制多边形。
ctx画布上下文polygon多边形参数styles样式style样式color颜色borderColor边框颜色borderSize边框粗细borderStyle边框样式borderDashedValue边框虚线参数值
utils.drawRect(ctx, rect, styles)
(
ctx: CanvasRenderingContext2D,
rect: {
x: number
y: number
width: number
height: number
},
styles: {
style?: 'stroke' | 'fill' | 'stroke_fill'
color?: string | CanvasGradient
borderColor?: string
borderSize?: number
borderStyle?: 'solid' | 'dashed'
borderDashedValue?: Array<number>
borderRadius?: number
}
) => void绘制矩形。
ctx画布上下文rect矩形参数x起始点x轴值y起始点y轴值width宽度height高度
styles样式style样式color颜色borderColor边框颜色borderSize边框粗细borderStyle边框样式borderDashedValue边框虚线参数值borderRadius边框圆角值
utils.drawText(ctx, text, styles)
(
ctx: CanvasRenderingContext2D,
text: {
x: number
y: number
text: any
width?: number
height?: number
align?: 'center' | 'end' | 'left' | 'right' | 'start'
baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
},
styles: {
style?: 'stroke' | 'fill' | 'stroke_fill'
color?: string
size?: number
family?: string
weight?: number | string
paddingLeft?: number
paddingTop?: number
paddingRight?: number
paddingBottom?: number
borderStyle?: 'solid' | 'dashed'
borderDashedValue?: number[]
borderSize?: number
borderColor?: string
borderRadius?: number
backgroundColor?: string
}
) => void绘制带背景的文字。
ctx画布上下文attrs文字参数x起始点x轴值y起始点y轴值text文字内容width宽度height高度align水平对齐方式baseline垂直对齐方式
styles样式style样式color颜色size尺寸family字体weight权重paddingLeft左内边距,paddingTop上内边距,paddingRight右内边距,paddingBottom下内边距,borderColor边框颜色borderSize边框粗细borderStyle边框样式borderRadius边框圆角尺寸borderDashedValue边框虚线参数值backgroundColor背景色
utils.drawRectText(ctx, rectText, styles)
同utils.drawText(ctx, text, styles),已废弃,v10之后会删除,请用utils.drawText(ctx, text, styles)代替。