C3js 时间序列无法显示连续线
C3js timeseries can't show continuous line
我想使用 c3 来显示带有时间序列的设备信息。
这是我的 json 数据。
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
],
我发现它无法为每个 wifi/gps 显示实线。
是bug还是有什么方法可以显示实线?
var chart = c3.generate({
data: {
xFormat: '%Y-%M-%d %H:%M:%S.%L',
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
],
keys: {
x: 'datetime',
value: ['wifi','GPS'],
},
types: {
wifi: 'line',
GPS:'line',
},
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
},
},
zoom: {
enabled: true
},
});
我从未使用过 c3,但这是我的猜测:您必须为所有日期时间指定 wifi
和 GPS
的值。
我只是在没有值的地方添加了 0。看看发生了什么,现在你有一个折线图:https://jsfiddle.net/gerardofurtado/oshujxux/
我发现这是一个老问题,解决方案是"connectNull: true"。
var chart = c3.generate({
data: {
xFormat: '%Y-%M-%d %H:%M:%S.%L',
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
],
keys: {
x: 'datetime',
value: ['wifi','GPS'],
},
types: {
wifi: 'step',
GPS:'step',
},
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
},
},
zoom: {
enabled: true
},
line: {
connectNull: true
}
});
我想使用 c3 来显示带有时间序列的设备信息。 这是我的 json 数据。
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
],
我发现它无法为每个 wifi/gps 显示实线。 是bug还是有什么方法可以显示实线?
var chart = c3.generate({
data: {
xFormat: '%Y-%M-%d %H:%M:%S.%L',
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
],
keys: {
x: 'datetime',
value: ['wifi','GPS'],
},
types: {
wifi: 'line',
GPS:'line',
},
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
},
},
zoom: {
enabled: true
},
});
我从未使用过 c3,但这是我的猜测:您必须为所有日期时间指定 wifi
和 GPS
的值。
我只是在没有值的地方添加了 0。看看发生了什么,现在你有一个折线图:https://jsfiddle.net/gerardofurtado/oshujxux/
我发现这是一个老问题,解决方案是"connectNull: true"。
var chart = c3.generate({
data: {
xFormat: '%Y-%M-%d %H:%M:%S.%L',
json: [
{datetime: '2016-01-02 12:00:01.001', wifi: 1},
{datetime: '2016-01-02 12:00:01.999', wifi: 0},
{datetime: '2016-01-02 12:00:04.003', wifi: 1},
{datetime: '2016-01-02 12:00:06.006', wifi: 0},
{datetime: '2016-01-02 12:00:03.000', GPS: 0},
{datetime: '2016-01-02 12:00:05.959', GPS: 1},
],
keys: {
x: 'datetime',
value: ['wifi','GPS'],
},
types: {
wifi: 'step',
GPS:'step',
},
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d %H:%M:%S'
}
},
},
zoom: {
enabled: true
},
line: {
connectNull: true
}
});