2014-01-06 3 views
1

им пытаются заполнить мои Xaxis используя только данные, хранящиеся в массиве $ дате []Flot диаграммы заселение Xaxis с массивом

это мое кодирование;

 <?php 
// Main query to pull data from 'tests' table 
    $sql = "SELECT UNIX_TIMESTAMP(`date`)*1000 AS unixDate,`date`, `test1`, `test2`, `test3`, `test4`, `test5`, `test6`, `test7`, `test8`, `test9`, `test10`, `test11`, `test12`, `test13`, `test14` FROM `tests` WHERE member_id = '1' ORDER by `date` ASC"; 
    $result = mysql_query($sql) or die ("no query"); 

// Dataset#1 
while($row = mysql_fetch_assoc($result)) { 
    $dataset1[] = array($row['unixDate'], sprintf("%.3f", $row['test1'])); 
    $date[] = array($row['unixDate']); 
    } 
?> 
<div id="chart1Canvas" style="width:510px;height:200px;"> 
<div id="chart1" style="width:500px;height:200px;"></div></div> 
<script type="text/javascript"> 
    //START CHART#1 
    var dateArray = [ <?php echo json_encode($date); ?> ]; 
    var chart1Options = { 
     xaxis: {show: true, mode: "time", timeformat: "%y-%m-%d", ticks: dateArray}, 
     yaxis: {show: true, min: 1.000, max: 1.050, tickDecimals: 3 }, 
     lines: { 
      show: true, 
      fill: true, 
      fillColor: { colors: [{ opacity: 0.2 }, { opacity: 0.2}] } 
     }, 
     points: { show: true, radius: 1 }, 
     grid: { 
      show: true, 
      color: '#fff', 
      backgroundColor: false, 
      borderWidth: 0, 
      hoverable: true, 
      clickable: true } 
    }; 

    function getTooltip(label, x, y) { 
    return "Your sales for " + x + " was $" + y; } 

    var dataset1 = { data: <?php echo json_encode($dataset1); ?>, color: 'white'}; 

    $.plot($("#chart1"), [ dataset1 ], chart1Options); 
    //END CHART#1 
</script> 

, когда я запускаю это все мою XAxis пропадает, я предположил, что я должен json_encode даты [] массива перед присвоением его опции 'тиков для моих Xaxis?

может кто-нибудь проверить, что я сделал неправильно здесь?

спасибо.

изменить: что-то изменило и теперь что-то делает, но все же нет сетки и меток для xaxis?

чек ссылка: http://www.myreeftests.com/graphs2.php

ответ

2

Ваш dateArray выглядит следующим образом:

var dateArray = [ [["1367704800000"],["1367791200000"], ... 

но он должен выглядеть следующим образом:

var dateArray = [1367704800000,1367791200000, ... 

Так удалить в яваскрипт и формат внешнего [ ] временные метки как longint вместо массивов строки (не знаете, как это сделать в php).

Для получения дополнительной информации см. documentation.

+1

Правильный PHP будет в цикле сделать '$ дата [] = intval ($ строки [ 'unixDate']);' – Mark

+0

я изменил массив цикла в intval ($ строки [ 'unixDate'], как было предложено, и удалил [] arround массив в javascript (var dateArray = ;), и теперь я не вижу xaxis для отображения. [ссылка] http://www.myreeftests.com/graphs2.php –

+0

Текущий код: [ссылка] http://pastebin.com/8tEptQQk –

0

ОК, так что с беспорядком мне удалось заставить его показать правильные тики с помощью массива, последняя проблема заключается в равномерном формировании тиков;

[ссылка] http://www.myreeftests.com/graphs2.php

+0

Вы хотите, чтобы только тики были равномерно распределены или также были установлены точки данных? Если и то и другое, то вам нужны категории (см. [Пример] (http://www.flotcharts.org/flot/examples/categories/index.html)). – Raidri

+0

btw: У вас есть нулевые значения для кислотности. Вероятно, это не реальные значения. Может быть, опустить их или изменить их на «null». – Raidri

+0

raidri, спасибо, проверит, да, некоторые значения кислотности вернут 0 результат, который не должен быть проблемой, если это так? или я могу справиться с этим другим? –

Смежные вопросы