在时间序列图表中使用数组作为数据源 C3.js
Use arrays as data sources in timeseries chart C3.js
我想像这样在 C3.js 图表中使用数组作为源:
var xData = ['2017-07-28', '2017-07-29'];
var yData = [30, 200];
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
['x', xData],
['data1', yData]
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});
但它给我这样的错误:
Failed to parse x '2017-07-28,2017-07-29' to Date object
Error: attribute transform: Expected number, "translate(NaN, 0)".
如果我使用直接值,那么它会完美地工作:
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
['x', '2017-07-28', '2017-07-29'],
['data1', 30, 200]
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});
在你的情况下,
['x', xData]
等于
['x', ['2017-07-28', '2017-07-29']]
不是
['x', '2017-07-28', '2017-07-29']
您可以做的是在之前创建数组:
var xData = ['2017-07-28', '2017-07-29'];
var yData = [30, 200];
xData.unshift('x');
yData.unshift('data1');
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
xData,
yData
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});
我想像这样在 C3.js 图表中使用数组作为源:
var xData = ['2017-07-28', '2017-07-29'];
var yData = [30, 200];
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
['x', xData],
['data1', yData]
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});
但它给我这样的错误:
Failed to parse x '2017-07-28,2017-07-29' to Date object
Error: attribute transform: Expected number, "translate(NaN, 0)".
如果我使用直接值,那么它会完美地工作:
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
['x', '2017-07-28', '2017-07-29'],
['data1', 30, 200]
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});
在你的情况下,
['x', xData]
等于
['x', ['2017-07-28', '2017-07-29']]
不是
['x', '2017-07-28', '2017-07-29']
您可以做的是在之前创建数组:
var xData = ['2017-07-28', '2017-07-29'];
var yData = [30, 200];
xData.unshift('x');
yData.unshift('data1');
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'x',
xFormat: '%Y-%m-%d',
columns: [
xData,
yData
]
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d'
}
}
}
});