Highcharts创建深度图表示列

一、Highcharts深度图示列代码(ETH‑BTC 市场深度图)

php 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>ETH-BTC 市场深度图</title>
    <script src="https://code.highcharts.com/highcharts.js"></script>
</head>
<body>
    <div id="container" style="width:900px;height:500px;margin:20px auto;"></div>

<script>
Highcharts.chart('container', {
    chart: {
        type: 'area',          //图表类型:面积图
        zooming: {
            type: 'xy'         //开启XY双向框选缩放
        }
    },
    title: {
        text: 'ETH-BTC 市场深度图'
    },
    xAxis: {
        minPadding: 0,
        maxPadding: 0,
        plotLines: [{          //实际价格参考竖线
            color: '#888',
            value: 0.1523,
            width: 1,
            label: {
                text: '实际价格',
                rotation: 90
            }
        }],
        title: {
            text: '价格(BTC)'
        }
    },
    yAxis: [{                 //左侧Y轴
        lineWidth: 1,
        gridLineWidth: 1,
        title: null,
        tickWidth: 1,
        tickLength: 5,
        tickPosition: 'inside',
        labels: {
            align: 'left',
            x: 8
        }
    }, {                      //右侧Y轴(镜像联动)
        opposite: true,
        linkedTo: 0,
        lineWidth: 1,
        gridLineWidth: 0,
        title: null,
        tickWidth: 1,
        tickLength: 5,
        tickPosition: 'inside',
        labels: {
            align: 'right',
            x: -8
        }
    }],
    legend: {
        enabled: false
    },
    plotOptions: {
        area: {
            fillOpacity: 0.2,   //面积填充透明度
            lineWidth: 1,
            step: 'center'       //阶梯式折线(订单簿阶梯特征)
        }
    },
    tooltip: {
        headerFormat: '<span style="font-size:10px;">价格: {point.key}</span><br/>',
        valueDecimals: 2
    },
    series: [{
        name: '买盘 Bids',
        data: [
            [0.1524, 0.95], [0.1539, 35.51], [0.1540, 39.88],
            [0.1541, 40.50], [0.1545, 43.26], [0.1547, 60.15],
            [0.1553, 60.31], [0.1558, 60.55], [0.1564, 68.38],
            [0.1567, 69.47], [0.1569, 69.62], [0.1570, 70.40],
            [0.1574, 70.40], [0.1575, 73.20], [0.1580, 77.70],
            [0.1583, 79.45], [0.1588, 79.58], [0.1590, 80.58],
            [0.1600, 81.58], [0.1608, 83.38]
        ],
        color: '#03a7a8'      //买盘:青色
    }, {
        name: '卖盘 Asks',
        data: [
            [0.1435, 242.52], [0.1436, 206.50], [0.1437, 205.82],
            [0.1438, 197.33], [0.1439, 153.68], [0.1440, 146.01],
            [0.1442, 82.55],  [0.1443, 59.15],  [0.1444, 57.94],
            [0.1445, 57.48],  [0.1446, 52.39],  [0.1447, 51.87],
            [0.1448, 44.10],  [0.1449, 40.13],  [0.1450, 31.88],
            [0.1451, 22.79],  [0.1453, 12.35],  [0.1454, 10.04],
            [0.1480, 9.33],   [0.1522, 3.76]
        ],
        color: '#fc5857'      //卖盘:红色
    }]
});
</script>
</body>
</html>

二、核心配置逐段解析

1. chart.type: 'area' + zooming.type: 'xy'

  • 面积图是市场深度图的标准类型,用填充区域直观展示累计挂单量。
  • xy 双向缩放:鼠标框选可同时放大价格区间和数量区间,适合查看深度图局部细节。

2. xAxis.plotLines --- 实际价格参考线

yaml 复制代码
plotLines: [{
    value: 0.1523,
    label: { text: '实际价格', rotation: 90 }
}]

在X轴指定价格位置画一条竖线,标注当前市场成交价 。深度图中买盘在价格线右侧、卖盘在左侧,中间缺口就是买卖价差(Spread)。

3. 双Y轴镜像联动

yaml 复制代码
yAxis: [
    { /* 左轴 */ },
    { opposite: true, linkedTo: 0, gridLineWidth: 0 }
]
  • linkedTo: 0:右轴完全绑定左轴刻度,左右数值一致。
  • 右轴关闭网格线,避免和左轴网格重叠。
  • 刻度标签 tickPosition: 'inside' 向内显示,是专业交易图表的典型风格。

4. plotOptions.area.step: 'center'

阶梯式面积图 ,这是市场深度图最关键的视觉特征。 订单簿(Order Book)的挂单量是阶梯式累积 的------每个价格档位挂单量突变,用平滑曲线会失真,step: 'center' 让折线在数据点中间阶梯跳转,真实还原订单簿结构。

5. fillOpacity: 0.2

面积填充透明度设为20%,买盘青色和卖盘红色区域半透明叠加,既能看到累计量,又不会遮挡对方区域。

6. 两组数据的业务含义

系列 颜色 含义 数据特征
Bids 买盘 青色 #03a7a8 买方挂单,价格高于实际价 价格越高,累计买量越大(从0.1524到0.1608,量从0.95涨到83.38)
Asks 卖盘 红色 #fc5857 卖方挂单,价格低于实际价 价格越低,累计卖量越大(从0.1435到0.1522,量从242.52降到3.76)

买盘数据点价格都 大于 实际价0.1523,卖盘都 小于 实际价,两条曲线在实际价格线两侧形成"V型"深度轮廓。

三、市场深度图怎么看

  1. 横轴:价格(ETH兑BTC汇率)
  2. 纵轴:累计挂单数量
  3. 青色区域宽度:买方支撑强度,越宽说明买盘越厚
  4. 红色区域宽度:卖方压力强度,越宽说明卖压越重
  5. 中间缺口:买卖价差,缺口越小市场流动性越好
  6. 阶梯陡峭程度:反映大单挂单位置,陡峭处存在大额限价单

四、适用场景 & 常见坑点

适用场景: 加密货币交易所订单簿、股票Level‑2行情、外汇做市商深度展示、金融交易终端。

常见坑点:

  1. 忘记 step: 'center' → 深度图变成平滑曲线,失去订单簿阶梯特征
  2. 买盘卖盘数据顺序写反 → 曲线交叉错乱,必须确保买盘价格递增、卖盘价格递减
  3. 不设 minPadding/maxPadding: 0 → 图表两侧留白,深度图边缘被截断
  4. 双Y轴忘记 linkedTo: 0 → 左右刻度不一致,用户误读数量
相关推荐
龙亘川29 分钟前
数字化支撑社保合规治理:亘川智城智慧人社模块实践路径
大数据·人工智能·智慧城市·开源软件·数据可视化
Flynt13 小时前
开源"间谍卫星"说数据全是真的,我把它的免key数据源挨个试了一遍
前端·开源·数据可视化
柳杉14 小时前
借助 Codex 和可视化工作流,从调研到完整实现,3D 大屏竟然可以这么简单
前端·ai编程·数据可视化
纸片人1 天前
甲方只给了一张卫星截图,我用 Three.js + Blender 建了一座 3D 能源站
three.js·数据可视化
纸片人1 天前
从一座城市钻进一个房间:Three.js + Blender 做一个五级钻取的数字楼宇大屏
three.js·数据可视化
数脉1 天前
数据血缘的八个典型企业应用场景
数据挖掘·数据分析·数据可视化
SL_staff2 天前
BI不该只服务高管:JVS如何让仓库管理员自主配置库存预警
spring boot·数据分析·数据可视化
Q26433650232 天前
【有源码】基于Hadoop+Spark的低能见度易雾站点识别与可视化分析系统-面向气象保障的低能见度监测数据挖掘与风险画像系统
大数据·hadoop·数据挖掘·spark·毕业设计·课程设计·数据可视化
天理智能科技2 天前
物流仿真项目投入成本怎么算?制造企业收益测算思路
数据可视化
龙亘川2 天前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化