2017-07-21 4 views
0

私はC3を使用して積み重ねられた(エリア)折れ線グラフを描画しようとしています。C3動的カテゴリCSVから積み上げられた積み上げチャート

私のコード、そのままで、私はスタッキングなしで折れ線グラフを作成することができます:

var chart = c3.generate({ 
data: { 
    x: 'x', 
    url: 'GeneratedData.csv', 
    type: 'area', 
    /* groups: [ ['data1', 'data2'] ] */ 
    }, 
    axis : { 
     x : { 
      type : 'timeseries', 
      tick : { 
       format : "%y-%m-%d" 
      } 
     } 
    } 
}); 

私の問題は、データが、私は列の名前を知らないような方法で生成されていることです

のx、LT62Ag、5NwafDw、Pac0dA:事前に、私は(groups: [ ['data1', 'data2'] ]周りので、コメント)彼らに をそのタイプまたはグループを設定することはできません

私のCSVは、次のようになります 2017-01-22,85797,145417,626803
2017-01-23,71837,105246,440776
2017-01-24,77650,108834,442359
...
2017-03- 31,87359,102618,467113

ダイナミックデータからグループを作成してグラフを積み重ねるにはどうすればよいですか?あなたのチャートの宣言にこれを追加してみてください可能性があり、それは(離れてXからの)データ系列の名前を引き出し、一つの大きなグループにそれらを有効にします

答えて

1

onrendered: function() { 
    var seriesNames = this.data.targets.map (function (d) { 
     return d.id; 
    }).filter (function (sname) { 
     return sname !== "x"; 
    }); 
    this.api.groups ([seriesNames]); 
    }, 

理想的には、それが行われる必要がありますすべてのレンダリングでグループをリセットするのではなく、 'oninit'宣言を使用していますが、それを行うとバーが1ピクセル幅になるようなバグがあるようです...

私は、既に設定されているグループは使用することができます...

https://jsfiddle.net/1bb60dd9/

関連する問題