2016-04-17 21 views
2

株価チャート(HighCharts)に異なる規模の複数のデータ系列があります。Highchartsの株価チャートの最後のポイントの値をラベルまたはツールチップとして表示

私はそれを各シリーズの最後の点のそれの軸またはshow値(データラベルのようなものをちょうど各シリーズの最後の点のために)、各シリーズを接続したい

$(function() { 
    $('#container').highcharts({ 

     chart: { 
      renderTo: 'container' 
     }, 
     xAxis: [{ 
      type: 'datetime' 
     }], 
     yAxis: [{ 
      opposite: true, 
      lineWidth: 1 
     },{ 
      opposite: true, 
      lineWidth: 1 
     }], 

     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], 
      pointStart: Date.UTC(2010, 0, 1), 
      pointInterval: 24 * 3600 * 1000, // one day 
      yAxis: 1 
     }, { 
      data: [20000, 2250, 30300, 28000, 27000, 27800, 25800], 
      pointStart: Date.UTC(2010, 0, 3), 
      pointInterval: 24 * 3600 * 1000, // one day 
     }] 

    }); 
}); 

http://jsfiddle.net/HamedMahdizadeh/4wjc02dw/2/

HighStock

答えて

5

単純なデータフォーマッタを追加するだけで、データテーブルを最後のデータポイントにのみ表示することができます。

plotOptions: { 
     series: { 
      dataLabels: { 
       enabled: true, 
       formatter: function(){ 
        var isLast = false; 
        if(this.point.x === this.series.data[this.series.data.length -1].x && this.point.y === this.series.data[this.series.data.length -1].y) isLast = true; 

        return isLast ? this.y : ''; 
       } 
      } 
     } 
    }, 

Updated fiddle

+0

どうもありがとうルカ。それは魅力のように働く。 –

+0

残念ながら、大きなデータを持つフォーマッタではパフォーマンスに問題があります。特殊ポイントにdatalableを追加するための単純な条件をいくつか使用すると、グラフを描画するのに時間がかかるので、redrawイベントでgroupedDataのupdateメソッドを使用して特殊ポイントのdatalableを追加しようとしましたが、私はエラー#15で直面するだろうと私はtrueに私は別のエラー(再描画メソッドの再帰的な無限呼び出しのための)に直面する更新メソッドのredrawパラメータを設定する場合は、datalablesを設定するための任意のアイデアはありますか? –

+0

データの量はどれくらいですか?グラフを描画する前にデータをループして、データポイントごとにデータラベルを設定することができます。このように:[フィドル](http://jsfiddle.net/cha9ugqu/4/)(セリの最後のポーズを見てください) –

関連する問題