2016-09-24 90 views
0

我正尝试使用时间轴创建一个简单的点图线,但图表不显示,而我的浏览器控制台显示错误:c3js:未捕获TypeError:c.forEach不是函数

c3.min.js Uncaught TypeError: c.forEach is not a function

这里是我的javascript:

var chart = c3.generate({ 
    bindto: '#chart', 
    data: { 
    json: [ 
     {date: "2016-01-01", pageviews: 1}, 
     {date: "2016-01-02", pageviews: 2}, 
     {date: "2016-01-03", pageviews: 3}, 
     {date: "2016-01-04", pageviews: 4}, 
     {date: "2016-01-05", pageviews: 5}], 
    keys: { 
     x: 'date', 
     value: 'pageviews' 
    } 
    }, 
    axis: { 
    x: { 
     type: 'timeseries', 
     tick: { 
     format: '%Y-%m-%d' 
     } 
    } 
    } 
}); 

而且here's a jsfiddle其使用D3和C3未精缩来源,并给出以下浏览器控制台错误:Uncaught TypeError: targetKeys.forEach is not a function

回答

0

data.keys.value期待一个数组,所以简单地包裹'pageviews'在方括号中所示:

var chart = c3.generate({ 
    bindto: '#chart', 
    data: { 
    json: [ 
     {date: "2016-01-01", pageviews: 1}, 
     {date: "2016-01-02", pageviews: 2}, 
     {date: "2016-01-03", pageviews: 3}, 
     {date: "2016-01-04", pageviews: 4}, 
     {date: "2016-01-05", pageviews: 5}], 
    keys: { 
     x: 'date', 
     value: ['pageviews']  // needs to be an array 
    } 
    }, 
    axis: { 
    x: { 
     type: 'timeseries', 
     tick: { 
     format: '%Y-%m-%d' 
     } 
    } 
    } 
}); 

Working jsfiddle for completeness

相关问题