Да, это возможно.
Идея состоит в том, чтобы использовать 2 оси x: оригинальную одну и вторую оси X с диапазоном времени, начиная с полуночи и продолжая в течение того же периода, что и исходная ось x.
Так, например, первая ось х 17:40 - 17:55
и второй: 0:00 - ?
, которые мы должны были бы рассчитывать каждый раз (теперь мы знаем, что это будет 0:00 - 0:15
но Flot нужно значение в метку времени).
Это может дать вам представление о том, как вычислить, что:
1467906900000 - 1467906000000 = 900000 // difference between 17:55 - 17:40 (result: 15 minutes in timestamp)
1467842400000 + 900000 = 1467843300000 // 0:00 + 15 minutes (result: 0:15 in timestamp)
(если вы находите эту метку времени вещь запутанным вы можете проверить это timestamp converter)
Поскольку теперь мы имеем оба диапазона для нашего х -axes, мы можем добавить их варианты:
"xaxes": [{
"mode": "time",
"timeformat": "%H:%M",
"tickSize": [5, "minute"],
"min": 1467906000000, // 17:40
"max": 1467906900000, // 17:55
"timezone": "browser"
}, {
"mode": "time",
"timeformat": "%H:%M",
"tickSize": [5, "minute"],
"min": 1467842400000, // 0:00
"max": 1467843300000, // 0:15
"timezone": "browser"
}]
проблема заключается в том, что эта вторая ось х не будет отображаться еще, если мы не будем назначать любые данные графика на него. К счастью для нас, мы можем легко обмануть его, передавая пустой набор данных:
$.plot('.graphContainer', [
{
// data for first x-axis
data: [
[1467906000000, 12], // data point at 17:40
[1467906300000, 14], // data point at 17:45, etc...
[1467906600000, 16],
[1467906900000, 23]
],
label: 'data1',
xaxis: 1
},
// data for second a-axis (empty data set in order to force displaying second x-axis)
{
data: [],
xaxis: 2
}
],
options);
Смотрите мой рабочий пример на JSFiddle.
Как я понял, вы хотите отобразить плоскую линию на время до 17:40 ...? Из того, что я знаю, единственный способ - заполнить недостающие точки данных нулевыми значениями для каждого тика между 0:00 - 17:40. –
Нет. К сожалению, я не очень хорошо себя проявил. Я хочу показать продолжительность моего общего времени. Предположим, у меня есть 3 datapoints с отметками времени для 17:40, 17:45 и 17:50 Затем я хочу отобразить эти метки по оси x: 00:00:00, 00:05:00, 00: 10:00 – ReactiveMax