2016-11-30 11 views
0

nvd3データを使用して棒グラフを作成しようとしています。グループ化されたオプションは正常に動作していますが、Stackedを選択すると、次のエラーが発生します。NVD3積み重ね棒グラフオプションが機能しない

Uncaught TypeError: Cannot read property '1' of undefined(…)

JSON形式は以下のとおりです。 JavaScriptコード

var test = [ 

    { 
     "key":"A", 
     "values": 
      [ 
       {"x":"2016-11-24","y":34}, 
       {"x":"2016-11-25","y":10} 
       ] 
    }, 
    { 
     "key":"B", 
     "values": 
      [ 
       {"x":"2016-11-25","y":15} 
      ] 
    }, 
    { 
     "key":"C", 
     "values": 
      [ 
       {"x":"2016-11-28","y":11} 
       ] 
    }, 
] 

var chart; 
nv.addGraph(function() { 
    chart = nv.models.multiBarChart() 
    .color(d3.scale.category10().range()) 
     .rotateLabels(0)  //Angle to rotate x-axis labels. 
     .transitionDuration(300) 
     .showControls(true) //Allow user to switch between 'Grouped' and 'Stacked' mode. 
     .groupSpacing(0.24) //Distance between each group of bars. 

     ; 

chart.reduceXTicks(false).staggerLabels(true).groupSpacing(0.3); 

chart.x(function(d) { return d.x; }); 
chart.y(function(d) { return d.y; }); 

    d3.select('#chart1 svg') 
     .datum(test) 
     .call(chart); 

    nv.utils.windowResize(chart.update); 



    return chart; 
}); 

私はそれを試してみましたが、答えを見つけることができません。どんな助け?

答えて

0

回答はJSONデータにあります。基本的にvalues配列は、すべてのデータ系列にわたって同じ長さでなければなりません。あなたの例では、nvd3がデータをスタックビューに変換するとき、値配列の2番目の要素が必要です。

{ 
"key":"B", 
"values": 
    [ 
     {"x":"2016-11-25","y":15} 
    ] 
} 
関連する問題