G2
G2
G6
F2
L7
墨者学院
关于 G2
图表示例
API 文档
使用教程
English
折线图
基础折线图
双折线图
多折线图
其他折线图
条形图
分组条形图
堆叠条形图
基础条形图
柱状图
基础柱状图
分组柱状图
堆叠柱状图
直方图
饼图
环图
玫瑰图
基础饼图
嵌套饼图
点图
散点图
面积图
基础面积图
堆叠面积图
区间面积图
箱形图
箱型图
烛形图
烛形图
热力图
热力图
仪表盘
仪表盘
漏斗图
漏斗图
地图
地图
雷达图
雷达图
分面
分面
关系图
关系图
其他图表
其他
迷你图
组件使用
组件
烛形图
股票图
K 线图,原名蜡烛图,又称阴阳图、棒线、红黑线或蜡烛线,常用于展示股票交易数据。
源码
复制成功
复制失败
全屏
复制
运行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,height=device-height"> <title>股票图</title> <style>::-webkit-scrollbar{display:none;}html,body{overflow:hidden;height:100%;margin:0;}</style> </head> <body> <div id="mountNode"></div> <script>/*Fixing iframe window.innerHeight 0 issue in Safari*/document.body.clientHeight;</script> <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g2-3.5.1/dist/g2.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.data-set-0.10.1/dist/data-set.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/assets/lib/jquery-3.2.1.min.js"></script> <script> $('<div id="slider"></div>').insertAfter('#mountNode'); $.getJSON('https://gw.alipayobjects.com/os/antvdemo/assets/data/candle-sticks.json', function(data) { // 设置状态量,时间格式建议转换为时间戳,转换为时间戳时请注意区间 var ds = new DataSet({ state: { start: '2015-04-07', end: '2015-07-28' } }); var dv = ds.createView(); dv.source(data).transform({ type: 'filter', callback: function callback(obj) { var date = obj.time; return date <= ds.state.end && date >= ds.state.start; } }).transform({ type: 'map', callback: function callback(obj) { obj.trend = obj.start <= obj.end ? '上涨' : '下跌'; obj.range = [obj.start, obj.end, obj.max, obj.min]; return obj; } }); var chart = new G2.Chart({ container: 'mountNode', forceFit: true, height: window.innerHeight - 60, animate: false, padding: [10, 40, 40, 40] }); chart.source(dv, { 'time': { type: 'timeCat', nice: false, range: [0, 1] }, trend: { values: ['上涨', '下跌'] }, 'volumn': { alias: '成交量' }, 'start': { alias: '开盘价' }, 'end': { alias: '收盘价' }, 'max': { alias: '最高价' }, 'min': { alias: '最低价' }, 'range': { alias: '股票价格' } }); chart.legend({ offset: 20 }); chart.tooltip({ showTitle: false, itemTpl: '<li data-index={index}>' + '<span style="background-color:{color};" class="g2-tooltip-marker"></span>' + '{name}{value}</li>' }); var kView = chart.view({ end: { x: 1, y: 0.5 } }); kView.source(dv); kView.schema().position('time*range').color('trend', function(val) { if (val === '上涨') { return '#f04864'; } if (val === '下跌') { return '#2fc25b'; } }).shape('candle').tooltip('time*start*end*max*min', function(time, start, end, max, min) { return { name: time, value: '<br><span style="padding-left: 16px">开盘价:' + start + '</span><br/>' + '<span style="padding-left: 16px">收盘价:' + end + '</span><br/>' + '<span style="padding-left: 16px">最高价:' + max + '</span><br/>' + '<span style="padding-left: 16px">最低价:' + min + '</span>' }; }); var barView = chart.view({ start: { x: 0, y: 0.65 } }); barView.source(dv, { volumn: { tickCount: 2 } }); barView.axis('time', { tickLine: null, label: null }); barView.axis('volumn', { label: { formatter: function formatter(val) { return parseInt(val / 1000, 10) + 'k'; } } }); barView.interval().position('time*volumn').color('trend', function(val) { if (val === '上涨') { return '#f04864'; } if (val === '下跌') { return '#2fc25b'; } }).tooltip('time*volumn', function(time, volumn) { return { name: time, value: '<br/><span style="padding-left: 16px">成交量:' + volumn + '</span><br/>' }; }); chart.render(); chart.interact('slider', { container: 'slider', // DOM id start: ds.state.start, // 和状态量对应 end: ds.state.end, data: data, // 源数据 xAxis: 'time', // 背景图的横轴对应字段,同时为数据筛选的字段 yAxis: 'volumn', // 背景图的纵轴对应字段,同时为数据筛选的字段 scales: { time: { type: 'timeCat', nice: false } }, onChange: function onChange(_ref) { var startText = _ref.startText, endText = _ref.endText; ds.setState('start', startText); ds.setState('end', endText); setTimeout(function() { chart.render(); }, 32); } }); }); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,height=device-height"> <title>股票图</title> <style>::-webkit-scrollbar{display:none;}html,body{overflow:hidden;height:100%;margin:0;}</style> </head> <body style="background: #1f1f1f;"> <div id="mountNode"></div> <script>/*Fixing iframe window.innerHeight 0 issue in Safari*/document.body.clientHeight;</script> <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.g2-3.5.1/dist/g2.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/pkg/_antv.data-set-0.10.1/dist/data-set.min.js"></script> <script src="https://gw.alipayobjects.com/os/antv/assets/lib/jquery-3.2.1.min.js"></script> <script>G2.Global.setTheme('dark');</script> <script> $('<div id="slider"></div>').insertAfter('#mountNode'); $.getJSON('https://gw.alipayobjects.com/os/antvdemo/assets/data/candle-sticks.json', function(data) { // 设置状态量,时间格式建议转换为时间戳,转换为时间戳时请注意区间 var ds = new DataSet({ state: { start: '2015-04-07', end: '2015-07-28' } }); var dv = ds.createView(); dv.source(data).transform({ type: 'filter', callback: function callback(obj) { var date = obj.time; return date <= ds.state.end && date >= ds.state.start; } }).transform({ type: 'map', callback: function callback(obj) { obj.trend = obj.start <= obj.end ? '上涨' : '下跌'; obj.range = [obj.start, obj.end, obj.max, obj.min]; return obj; } }); var chart = new G2.Chart({ container: 'mountNode', forceFit: true, height: window.innerHeight - 60, animate: false, padding: [10, 40, 40, 40] }); chart.source(dv, { 'time': { type: 'timeCat', nice: false, range: [0, 1] }, trend: { values: ['上涨', '下跌'] }, 'volumn': { alias: '成交量' }, 'start': { alias: '开盘价' }, 'end': { alias: '收盘价' }, 'max': { alias: '最高价' }, 'min': { alias: '最低价' }, 'range': { alias: '股票价格' } }); chart.legend({ offset: 20 }); chart.tooltip({ showTitle: false, itemTpl: '<li data-index={index}>' + '<span style="background-color:{color};" class="g2-tooltip-marker"></span>' + '{name}{value}</li>' }); var kView = chart.view({ end: { x: 1, y: 0.5 } }); kView.source(dv); kView.schema().position('time*range').color('trend', function(val) { if (val === '上涨') { return '#f04864'; } if (val === '下跌') { return '#2fc25b'; } }).shape('candle').tooltip('time*start*end*max*min', function(time, start, end, max, min) { return { name: time, value: '<br><span style="padding-left: 16px">开盘价:' + start + '</span><br/>' + '<span style="padding-left: 16px">收盘价:' + end + '</span><br/>' + '<span style="padding-left: 16px">最高价:' + max + '</span><br/>' + '<span style="padding-left: 16px">最低价:' + min + '</span>' }; }); var barView = chart.view({ start: { x: 0, y: 0.65 } }); barView.source(dv, { volumn: { tickCount: 2 } }); barView.axis('time', { tickLine: null, label: null }); barView.axis('volumn', { label: { formatter: function formatter(val) { return parseInt(val / 1000, 10) + 'k'; } } }); barView.interval().position('time*volumn').color('trend', function(val) { if (val === '上涨') { return '#f04864'; } if (val === '下跌') { return '#2fc25b'; } }).tooltip('time*volumn', function(time, volumn) { return { name: time, value: '<br/><span style="padding-left: 16px">成交量:' + volumn + '</span><br/>' }; }); chart.render(); chart.interact('slider', { container: 'slider', // DOM id start: ds.state.start, // 和状态量对应 end: ds.state.end, data: data, // 源数据 xAxis: 'time', // 背景图的横轴对应字段,同时为数据筛选的字段 yAxis: 'volumn', // 背景图的纵轴对应字段,同时为数据筛选的字段 scales: { time: { type: 'timeCat', nice: false } }, onChange: function onChange(_ref) { var startText = _ref.startText, endText = _ref.endText; ds.setState('start', startText); ds.setState('end', endText); setTimeout(function() { chart.render(); }, 32); } }); }); </script> </body> </html>
图表简介
K 线图,原名蜡烛图,又称阴阳图、棒线、红黑线或蜡烛线,常用于展示股票交易数据。
了解更多
图表用法
K 线图主要用于金融领域里展示股票,期货等交易数据,按照时间维度分为日 K 线、周 K 线、月 K 线。展示的数据需要满足 K 线构成的四要素:即开盘价、收盘价、最高价、最低价。
相关链接
BizCharts
Viser