2015-12-04 29 views
0

我想知道是否有办法将动态设置应用于高分布图的单个标记?我搜索了半天,我感觉API有问题。似乎没有办法调整特定基准面上的标记设置。例如:忽略Highstock标记特定选项

$('#container').highcharts('StockChart', { 
    chart : { 
     events : { 
      load : function() { 
       // set up the updating of the chart each second 
       var series = this.series[0]; 
       setInterval(function() { 
        var x = (new Date()).getTime(), // current time 
         y = Math.round(Math.random() * 100); 
        series.addPoint([x, y], true, true); 
       }, 1000); 
      } 
     } 
    }, 
    series : [{ 
     data : (function() { 
      var data = [], time = (new Date()).getTime(), i; 
      for (i = -999; i <= 0; i += 1) { 
       data.push([ 
        { x: time + i * 1000, 
        y: Math.round(Math.random() * 100), 
        marker:{ 
         fillColor:'red' 
        } 
        } 
       ]); 
      } 
      return data; 
     }()) 
    }] 
} 

我已经分叉基本的Highstock演示来说明我的观点。看到演示问题的jsfiddle:http://jsfiddle.net/9xj0nz72/1/

也许我有一个错误在我的小提琴......或者我可能必须创建在Github上的问题吗?

非常感谢!

+0

是不是Highstock一个共享库?也许你会在Highstock论坛上有更多的机会? – Carlos2W

+0

从您的小提琴中,您实际上是从您的'chart.events.load'代码部分发送数据,并且您没有在此处设置任何标记信息。 – wergeld

回答

1

我不得不在addPoint方法中指定样式,您不能仅推送到data阵列。你必须在chart = new Highcharts.StockChart()变量上使用它。

我很确定我有什么你希望使用以下。为了演示,我为每个新点分配了一个随机的颜色和半径。

enter image description here

$(function() { 

    var chart = new Highcharts.StockChart({ 
    chart: { 
     renderTo: 'container' 
    }, 
    plotOptions: { 
     series: { 
     marker: { 
      enabled: true 
     } 
     } 
    }, 
    series: [{ 
     name: 'Random data', 
     data: [], 
     time: (new Date()).getTime() 
    }] 
    }); 

    /* add new random point every 1 second */ 
    var i = 0; 
    setInterval(function() { 
    i++; 
    chart.series[0].addPoint({ 
     marker: { 
     /* assign a random hex color and radius */ 
     fillColor: '#' + (Math.random() * 0xFFFFFF << 0).toString(16), 
     radius: Math.floor(Math.random() * 10) + 1 
     }, 
     y: Math.random() * 100, 
     x: i * 1000, 
    }, true, false); 
    }, 1000); 

}); 

Your updated JSFiddle

+0

它很好用,非常感谢你!我认为我会问Santa-HighStock向API(以及我的圣诞树下)添加“push()”功能。之后我会发布链接... – rattek

+0

对我来说'push()'可以正常工作:http://jsfiddle.net/9xj0nz72/4/ - 但是,应该有'push({...}); ',而不是'push([{...}];'。额外提示:阅读['dataGrouping'](http://api.highcharts.com/highstock#plotOptions.series.dataGrouping)和['turboThreshold'](http://api.highcharts.com/highstock#plotOptions。 series.turboThreshold) - 所以你不会对许多数据点丢失颜色感到惊讶;) –