javascript php mysql flot

Я столкнулся с новой проблемой относительно оси x. Мое намерение состояло в том, чтобы вывести ось x, которая указывает время, в то время как ось y указывает мощность. Я решил использовать time[i] и использовать graph.push([time[i], power[i]) . Однако мой график остается пустым. Я сделал предупреждение для функции вывода, и это было результатом:

 ({1:"14:36", 2:"14:39", 3:"14:42", 4:"14:45", 5:"14:48", 6:"14:51", 7:"14:54", 8:"14:57"}) 

Это hour: mins . Что я должен изменить, чтобы получить ось X времени?

 $(function () { var graph = []; var power = <?php echo json_encode($data);?>; var time = <?php echo json_encode($times);?>; var row = <?php echo json_encode($nrow);?>; //alert(time.toSource()); for (var i = 1; i < row; i += 1) { //var test = time[i]; //alert(test); graph.push([time[i], power[i]]); } var plot = $.plot($("#placeholder"), [ { data: graph, label: "Power" } ], { series: { lines: { show: true }, points: { show: true } }, grid: { hoverable: true, clickable: true }, yaxis: { min: 0, max: 25 } }); 

Solutions Collecting From Web of "javascript php mysql flot"

Вы должны конвертировать время с часа: mins to number

 for (var i = 1; i < row; i += 1) { //var test = time[i]; //alert(test); var hhmm = time[i].split(":"); var hh = parseInt(hhmm[0]); var mm = parseInt(hhmm[1])/60; var tt = hh + mm; graph.push([tt, power[i]]); } 

EDIT (Евгений Вонг):

// var options = {// xaxis: {ticks: [[1, time [1]], [2, time [2]], [3, time [3]], [4, time [4]], [5, время [5]], [6, время [6]], [7, время [7]], [8, время [8]]]} //}; // оповещения (options.toSource ());

 var plot = $.plot($("#placeholder"), [ { data: graph, label: "Power" } ], { series: { lines: { show: true }, points: { show: true } }, grid: { hoverable: true, clickable: true }, yaxis: { min: 0, max: 25 }, xaxis: { mode: "time", timeformat:"%hh:%mm" } //xaxis: { ticks:[[1,time[1]],[2,time[2]],[3,time[3]],[4,time[4]],[5,time[5]],[6,time[6]],[7,time[7]],[8,time[8]]]} }); 

EDIT (Diode):

Несмотря на то, что я создал временные диаграммы раньше, это время, когда настройка x-axis конфигурации не работала. Во всяком случае, я исправил это, добавив функцию tick tickter. См. Код ниже. «graph» – это массив данных выборки, который я использовал.

  var graph = [[14.5, 10], [16.45, 15], [18.45, 20]]; var plot = $.plot($("#placeholder"), [ { data: graph, label: "Power" } ], { series: { lines: { show: true }, points: { show: true } }, grid: { hoverable: true, clickable: true }, yaxis: { min: 0, max: 25 }, xaxis: { min:14, max:20, tickSize:0.5, tickFormatter: function(value){ var hours = Math.floor(value); hours = (hours < 10)?"0"+hours:hours; var minutes = (value - hours) * 60; minutes = (minutes < 10)?"0"+minutes:minutes; return hours + ":" + minutes; } } }); 

Попросите PHP вывести метку времени Javascript вместо уже отформатированной даты / времени. Просто запомните несколько предостережений о отметках времени:

  • Временные метки PHP – это секунды, тогда как javascript – миллисекунды, поэтому умножаются на 1000
  • флота в UTC, поэтому вам может потребоваться преобразовать временную метку в UTC перед выводом
  • Существует хороший пример данных временных рядов на сайте флота .

Не забудьте указать xaxis: { mode: "time" } в параметрах вашего флота.