VISALL K线图叠加多指标折线 (HXKLine And Multi-Indicator Line) 使用文档
简介
K线图叠加多指标折线组件是VISALL数据可视化库中的专业金融图表组件,支持在K线图基础上叠加多个指标折线图,方便用户进行多指标联合分析。该组件基于同花顺K线图实现,提供了同步的数据显 示、交互和缩放功能。
基本用法
import { render } from 'path/to/bundle.esm.min.js';
// 创建K线图叠加多指标折线
const chart = render(container, {
layers: [
{
type: 'hxKLineAndMultiIndicatorLine',
dataIndex: 0,
encoding: {
x: 'date', // X轴日期字段
y: ['指标1', '指标2'] // Y轴指标字段
},
stocks: [
{
code: '000001', // 股票代 码
market: 'SZ', // 市场代码
name: '平安银行' // 股票名称
}
]
}
],
data: [
{
values: [
{ date: '2023-01-01', 指标1: 100, 指标2: 150 },
{ date: '2023-01-02', 指标1: 120, 指标2: 140 },
// ...更多数据
]
}
]
});
配置参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| encoding.x | string | - | X轴映射字段,必须提供一个日期类型字段 |
| encoding.y | string[] | - | Y轴映射字段数组,指定要显示的指标,必须是数值类型 |
| dataIndex | number | 0 | 指定使用的数据集索引 |
| stocks | StockData[] | - | 股票数据数组,每个元素包含股票的基本信息 |
| StockData.code | string | - | 股票代码 |
| StockData.market | string | - | 市场代码(如:SZ-深市,SH-沪市) |
| StockData.name | string | - | 股票名称 |
数据要求
- X轴字段必须是日期类型
- Y轴字段必须是数值类型
- 股票代码必须符合交易所规范
- 市场代码必须是有效的交易所代码
- 数据量至少需要大于1条
- 提供准确的字段名映射
高级用法
1. 多指标显示
当需要展示多个指标进行对比分析时:
{
type: 'hxKLineAndMultiIndicatorLine',
encoding: {
x: 'date',
y: ['成交量', '持仓量', '换手率']
},
stocks: [...]
}
2. 多股票切换
支持在同一个图表中切换显示不同的股票:
{
type: 'hxKLineAndMultiIndicatorLine',
encoding: {
x: 'date',
y: ['指标1', '指标2']
},
stocks: [
{
code: '000001',
market: 'SZ',
name: '平安银行'
},
{
code: '600000',
market: 'SH',
name: '浦发银行'
}
]
}
潜规则与注意事项
-
数据加载机制:
- K线图组件会自动从同花顺数据源加载数据
- 折线图数据需要用户自行提供
- 两种数据的日期范围必须匹配
-
折线图渲染规则:
- 当有多个Y轴字段时,系统会自动选择数据范围最大的字段作为主Y轴
- 左侧Y轴显示指标数据,右侧Y轴显示股价数据
- 折线图颜色自动从颜色列表中分配
-
图表交互限制:
- 默认禁用了缩放功能(setZoomEnabled: false)
- 默认禁用了滚动功能(setScrollEnabled: false)
- 使用DataZoom控制显示范围
-
DataZoom智能显示:
- 使用自定义DataZoom控制K线和折线的同步显示
- 拖动DataZoom时,K线和折线会同步更新
-
Tooltip显示规则:
- K线tooltip和折线tooltip分别显示
- K线tooltip显示股票行情信息
- 折线tooltip显示指标数据信息
-
样式定制规则:
实现原理
K线图叠加多指标折线组件内部使用了复杂的数据处理逻辑,主要包括以下步骤:
- 数据预处理:排序、去重和日期处理
- 数据编码:将原始数据映射到视觉通道
- K线图渲染:初始化K线图并加载股票数据
- 折线图渲染:根据指标数据渲染折线图
- 缩放联动:实现K线图和折线图的同步缩放
- 自适应计算:根据数据范围调整Y轴比例
类型兼容性问题
使用本组件时,需 要注意以下类型兼容性问题:
- 日期字段需要是有效的日期格式
- 指标数据字段必须是数值类型
- 股票数据类型需要符合StockData接口定义
- 市场代码必须是预定义的常量值
示例
基础K线图叠加双指标折线
{
type: 'hxKLineAndMultiIndicatorLine',
encoding: {
x: 'date',
y: ['成交量', '换手率']
},
stocks: [
{
code: '000001',
market: 'SZ',
name: '平安银行'
}
]
}
多指标分析
{
type: 'hxKLineAndMultiIndicatorLine',
encoding: {
x: 'date',
y: ['成交量', '持仓量', 'MACD', 'KDJ']
},
stocks: [
{
code: '600000',
market: 'SH',
name: '浦发银行'
}
]
}
常见问题解决
-
数据加载失败
- 检查股票代码和市场代码是否正确
- 确认是否有正确的数据访问权限
- 检查日期字段格式是否正确
-
图表显示异常
- 检查容器大小是否合适
- 确认数据是否完整
- 验证指标数据范围是否合理
-
指标不显示
- 检查指标字段名是否正确
- 确认数据中是否包含指标数据
- 验证数据类型是否为数值
-
联动失效