Highcharts - 仅显示选定的点数

时间:2013-05-03 04:30:13

标签: javascript highcharts

我想要一条只显示所选点的线(它们实际上是预选的)。

在此示例中 - http://jsfiddle.net/jhG8j/ - 您可以在单击按钮时显示所选点,但只有在已显示所有其他点(标记:已启用)时才能使其生效。有没有办法从一条简单的线开始,然后只显示选定的点?

以下是来自jsfiddle的相关代码:

$(function () {
$('#container').highcharts({
    plotOptions: {
        line: {
            marker: {
                enabled: true
            }  
        }
    },
    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    }]
});

// button handler
var chart = $('#container').highcharts(),
    i = 0;
$('#button').click(function() {

    if (i == chart.series[0].data.length) {
        i = 0;
    }
    chart.series[0].data[i].select(true, true);
    i++;
});

});

1 个答案:

答案 0 :(得分:3)

你可以通过创建两个单独的系列来逃避这一点。为了使系列看起来像是一个折线图,您需要在数据中添加一些空值,并确保第一个系列的最后一个数据点是以下系列的第一个数据点。 / p>

使用您提供的jsfiddle,更新代码如下:

$(function () {
    $('#container').highcharts({
        plotOptions: {
            line: {

            }
        },
        series: [{
            data: [29.9, 71.5, 106.4] ,
            marker: {
                enabled: true
            } ,
            color: '#000000'
        },{
            data: [null, null , 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]  ,
            marker: {
                enabled: false ,
                states: {
                    hover: {
                        enabled: false   
                    } ,
                    states: {
                        select: false   
                    }
                }
            },
            color: '#000000'
        }]
    });

    // button handler
    var chart = $('#container').highcharts(),
        i = 0;
    $('#button').click(function() {

        if (i == chart.series[0].data.length) {
            i = 0;
        }
        chart.series[0].data[i].select(true, true);
        i++;
    });
});