2015-12-04 57 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) - 所以你不會對許多數據點丟失顏色感到驚訝;) –