2017-01-21 7 views
1

C3の2線チャートにx軸として時系列を追加しようとしています。残念ながら、私はそれを行う方法をかなり理解できません。私がC3のtimeseriesチャートの例を可能な限り厳密に守ろうとしたが、「x = id = "Dates"に定義されていないというエラーが出ています。C3線グラフの時系列エラー:xがid = "日付"に定義されていません

ここにコードはありますか?

request.addEventListener('readystatechange', function() { 
     if (this.readyState == 4) { 
      var throughputReceived = JSON.parse(this.responseText).throughputReceived, 
       throughputSent = JSON.parse(this.responseText).throughputSent, 
       date = JSON.parse(this.responseText).date, 
       chart, 
       length = throughputReceived.length; 

      for (var i = 0; i < length; i++) { 
       throughputReceived[i] /= 1000000; 
       throughputSent[i] /= 1000000; 
       //    date[i] = moment(date[i]).format("YYYY MM DD hh ss"); 
      } 

      throughputReceived.unshift('Throughput Received (Mbps)'); 
      throughputSent.unshift('Throughput Sent (Mbps)'); 
      date.unshift('Dates'); 

      chart = c3.generate({ 
       bindto: container, 
       data: { 
        x: date, 
        columns: [date, throughputReceived, throughputSent] 
       }, 
       axis: { 
        x: { 
         //      label: 'Test No.' 
         type: 'timeseries', 
         tick: { 
          format: '%Y %m %d %h %s' 
         } 
        }, 
        y: { 
         label: { 
          text: 'Throughput (Mbps)', 
          position: 'outer-top' 
         }, 
         tick: { 
          format: d3.format('.2f') 
         } 
        } 
       } 
      }); 
     } 
    }); 
+0

... – Mark

+0

申し訳ありません - 「日付」フィールドは、YYYY MM DD」にあるようにmoment.jsによって解析された日付/時刻の配列ですhh ss "形式であり、他の2つは数字の配列です。これまでのところ、 'throughputReceived'と 'throughputSent'を使ったグラフがありましたが、グラフのx軸に新しい変数 'date'を使いたいと思います。 – BenAdamson

答えて

3

x軸を間違って定義しています。

日付の配列を参照する代わりに、列のタイトルを定義する必要があります。

あなたのデータがどのように見えるかを知らなくても、この質問に答えることは不可能
date.unshift('Awesome-Column'); 
... 
data: { 
     x: 'Awesome-Column', 
     columns: [date, throughputReceived, throughputSent] 
     }, 
関連する問題