通过高级图表获取多个系列的ID

时间:2014-12-09 23:07:51

标签: highcharts highstock

我环顾四周但似乎无法找到确切的答案。

我目前正在向highcharts添加一些数据。基本上,我使用HighStock列和烛台图表,它应该足以进行我的测试。

问题是这个。我已经设置了两个系列中的一个'有ID。我现在想通过调用[something] .get(" point_0")来检索一个单独的点对象,这似乎应该是可能的,但似乎不起作用。这是它的小提琴:

http://jsfiddle.net/mr3ezgh9/

这是代码:

var chart = null;
$(function () {
    $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-ohlcv.json&callback=?', 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(
            {
                name: data[i][0],
                x: data[i][0], // the date
                y: data[i][5], // the volume
                color: "red",
                id: "point_" + i
            }
        );
    }


    // create the chart
    $('#container').highcharts('StockChart', {

        rangeSelector: {
            selected: 1
        },

        title: {
            text: 'AAPL Historical'
        },

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

        series: [{
            type: 'candlestick',
            name: 'AAPL',
            data: ohlc,
            dataGrouping: {
                units: groupingUnits
            }
        }, {
            type: 'column',
            name: 'Volume',
            data: volume,
            yAxis: 1,
            turboThreshold: Number.MAX_VALUE,
            dataGrouping: {
                units: groupingUnits
            }
        }]
    });
    alert(Highcharts.charts[0].get("point_0"));
});
});

我在.get(&#34; point_0&#34;)上尝试了一些变体,比如首先获得一个系列(但系列没有get函数),将图表设置为变量然后得到它,以及其他类似的变化,但似乎没有什么工作。对此有何见解?

1 个答案:

答案 0 :(得分:1)

一般问题是,在highstock中你启用了数据分组,因此对点进行分组并跳过id。禁用它,选项将起作用。

 plotOptions: {
                series: {
                    dataGrouping: {
                        enabled: false
                    }
                }
 }

示例:http://jsfiddle.net/mr3ezgh9/1/