2017-06-22 5 views
0

私はライブラリc3jsを使ってエリアチャートを表示しています。 私の日付データに問題があります。私は多くの日付(+/- 1000)を持っており、私の日付を正しくグループ化したい。ここでC3JS - 正確な日付のグループ

私actuelがレンダリングされます。 [1]

あなたは、いくつかの日付がx軸上の2つの時間を表示されていることがわかります。ここで

は私のチャートのコードです:

var usedList = JSON.parse(usedList); 
     var format = informations[0]; 
     var counts = informations[1]; 

     var amounts = new Array('Evolution'); 
     var dates = new Array("x"); 

     for (var i = 0; i < usedList.length; i++) 
     { 
      amounts.push(usedList[i].price); 
      dates.push(usedList[i].date); 
     } 

var chart = c3.generate({ 
      bindto : '#js-chart', 
      size : { 
       height : 220 
      }, 
      area: { 
        zerobased: false 
       }, 
      data : { 
       selection : { 
        draggable : false 
       }, 
       x : 'x', 
       columns : [ dates, amounts ], 
       types : { 
        Evolution : 'area' 
       }, 
       colors : { 
        Evolution : '#143FB4' 
       } 
      }, 
      axis : { 
       x : { 
        type : 'timeseries', 
        tick : { 
         fit: true, 
         format : format 
        }, 
        padding: { 
         left: 0, 
         right: 0, 
        } 
       } 
      }, 
      point : { 
       r : 0 
      }, 
      grid : { 
       y : { 
        show : true 
       } 
      } 

     }); 

あなたは私が毎月のちょうど1回の繰り返しを持つために日付を再編成するために行うことができると思いますどのように?

は月のために、 デビッド

答えて

1

どうかのプッシュだけ1日をありがとう!

for (var i = 0; i < usedList.length; i++) 
    { 
     amounts.push(usedList[i].price); 

     // replacing existing dates with empty string, keeping array size 
     var d = usedList[i].date; 
     dates.push(dates.indexOf(d) == -1 ? d : ''); 
    } 

これは、日付が「MM/YYYY」として保存されている場合に有効です。 日付が別の形式で保存されている場合は、別のチェックが必要です。 しかし、一般的なアイデアは同じです - x軸で1ヶ月の日付は1つだけです。

+0

ありがとう、私はあなたのアイデアを私の完全な論理と一致させるように修正しました。 –

+0

私は助けてうれしいです! –

+0

チェックの後、私はあなたのメソッドを使用する場合、日付が関連付けられていないので、 ''(空文字列)に対応するすべての値はグラフに存在しません。 –

関連する問題