首页 > 解决方案 > Highcharts - 可调整大小的 y 轴作为烛台和交易量图表的一个

问题描述

仍然没有找到解决方案,我不得不在这里发帖。

我有一张来自“Highcharts”的烛台图和成交量图。两者应该在同一轴上。当我调整大小时,两者都应该调整为一个。见下图。 在此处输入图像描述

目前,Highchart 支持它作为两个窗格,这对我没有用。任何帮助将不胜感激。 在此处输入图像描述

标签: highchartsresizecandlestick-chart

解决方案


调整大小适用于轴,并且系列可以分配给任何轴,因此如果您将在同一个 yAxis 中有多个系列,那么调整大小将适用于该 yAxis 中的所有系列。

音量的默认演示数据大约1 000 000大于 OHLC 数据,所以我在下面的演示中进行了调整:https ://jsfiddle.net/BlackLabel/oegqudbz/

Highcharts.getJSON('https://www.highcharts.com/samples/data/aapl-ohlcv.json', function (data) {

    // split the data set into ohlc and volume
    var ohlc = [],
        volume = [],
        dataLength = data.length,
        // set the allowed units for data grouping
        groupingUnits = [[
            'week',                         // unit name
            [1]                             // allowed multiples
        ], [
            'month',
            [1, 2, 3, 4, 6]
        ]],

        i = 0;

    for (i; i < dataLength; i += 1) {
        ohlc.push([
            data[i][0], // the date
            data[i][1], // open
            data[i][2], // high
            data[i][3], // low
            data[i][4] // close
        ]);

        volume.push([
            data[i][0], // the date
            data[i][5] / 1e6 // the volume in milions
        ]);
    }


    // create the chart
    Highcharts.stockChart('container', {

        rangeSelector: {
            selected: 1
        },

        title: {
            text: 'AAPL Historical'
        },

        yAxis: [{
            labels: {
                align: 'right',
                x: -3
            },
            title: {
                text: 'OHLC'
            },
            height: '60%',
            lineWidth: 2,
            resize: {
                enabled: true
            }
        }, {
            labels: {
                align: 'right',
                x: -3
            },
            title: {
                text: 'Volume'
            },
            top: '65%',
            height: '35%',
            offset: 0,
            lineWidth: 2
        }],

        tooltip: {
            split: true
        },

        series: [{
            type: 'candlestick',
            name: 'AAPL',
            data: ohlc,
            dataGrouping: {
                units: groupingUnits
            }
        }, {
            type: 'column',
            name: 'Volume',
            data: volume,
            dataGrouping: {
                units: groupingUnits
            }
        }]
    });
});
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/data.js"></script>
<script src="https://code.highcharts.com/stock/modules/drag-panes.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>


<div id="container" style="height: 600px; min-width: 310px"></div>

通过 draggable-pane 模块可以更改多少个窗格(或 yAxes)没有限制,因此您可以拥有超过 2 个轴和超过 2 个调整器,并且不仅仅是分配给一个调整器的 2 个轴。API 参考中的更多信息: https ://api.highcharts.com/highstock/yAxis.resize


推荐阅读