2016-04-13 4 views
0

私を助けてください。私は6ヶ月の間隔で多くのデータを持っています。どのように私はそれをXの間隔でグループ化できますか?ハイチャートxシリーズグループ

$(function() { 
    $('#container').highcharts({ 
     xAxis: { 
      type: 'datetime' 
     }, 
     plotOptions: { 
      spline: { 
       marker:{ 
        enabled: false 
       } 
      } 
     }, 
     series: [{ 
      type: 'spline', 
      data: [ 
       [Date.UTC(2010, 0, 1), 29.9], 
       [Date.UTC(2010, 0, 3), 29.9], 
       [Date.UTC(2010, 0, 10), 29.9], 
       [Date.UTC(2010, 1, 1), 71.5], 
       [Date.UTC(2010, 1, 5), 29.9], 
       [Date.UTC(2010, 2, 1), 106.4] 
      ] 
     }] 
    }); 
}); 

https://jsfiddle.net/L2g2uzz3/3/ 例えば、私は1月、2月、3月のラベルを受信するX斧で

答えて

1

私はあなたのX軸に各データの月の名前を表示したいと思います理解しています。

あなただけの月を表示したいとあなたは同じ月に多くのデータを持っているので、あなたはHighcharts APIの2つの属性でプレイしている:フォーマッタ & tickPositioner

  • フォーマッタ:データをフォーマットするときにこの機能を使用します。 ダニ(軸上のラベルの位置)を設定するためにそれを使用する:ここでは、代わりにtickPositioner
  • TIMEVALUE more info hereの名前を表示したいです。私たちの場合、複数のティックと同じラベルがあるので、それらをフィルタリングする必要があります。追加し、X軸のラベルプロパティでmore info

ためHighchartsドキュメントを参照してください。

labels:{ 
       formatter: function(){ 
         return monthNames[new Date(this.value).getMonth()]; 
         }  
        }, 
      tickPositioner: function() { 
       var positions = []; 
       var month = []; 
       for(var i = 0; i < this.series[0].xData.length; i++){ 
         if(month.indexOf(new Date(this.series[0].xData[i]).getMonth()) == -1){ 
           positions.push(this.series[0].xData[i]); 
         month.push(new Date(this.series[0].xData[i]).getMonth()); 
         } 
       } 
       return positions; 
      } 
     }, 

また、あなたの更新を見ることができますMONTHNAMES配列

var monthNames = ["January", "February", "March", "April", "May", "June", 
    "July", "August", "September", "October", "November", "December" 
]; 

を初期化することを忘れないでくださいFIDDLE

助けがあれば教えてください

+0

ええ、それは素晴らしい解決策です。どうもありがとうございました! –

+0

あなたの歓迎:) – IsraGab

関連する問題