2013-05-03 80 views
2

我想要一条只显示选定点的线(它们实际上会被预先选定)。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++; 
}); 

});

+0

你能改写这个问题? – Duniyadnd 2013-05-03 04:35:11

+0

我想要一个有25个数据点的图表,但只有3个点显示为选中状态,即它们从行中伸出。其余部分应该平滑。那有意义吗? – 2013-05-03 04:36:27

+0

您仍然可以将鼠标悬停在平滑线上并获取正确的信息?对, – Duniyadnd 2013-05-03 04:40:20

回答

3

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

使用您所提供的的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++; 
    }); 
}); 
+0

看起来像会工作,非常感谢您的帮助 – 2013-05-03 04:57:13