2013-06-18 65 views
0

我在添加unix時間戳作爲工具提示中的額外點時出現問題。 我的代碼顯示無圖。幫幫我!我的數據數組:$ data [] =「[x:$ valDE,y:$ valDN,z:$ datetime]」;這是我的代碼的一部分:Scatter中的工具提示

而且我的javascript:

var <?php echo $chart ?> = new Highcharts.Chart({ 
     chart: { 
      type: 'scatter', 
      renderTo: '<?php echo $container ?>', 
      zoomType: '', 
      marginLeft: 50, 
      borderWidth: 1 
     }, 
     title: { 
      text: '<?php echo "$gps $location"; ?>', 
      style: { 
       fontSize: '<?php echo $sizeTitle ?>' 
      } 
     }, 
     subtitle: { 
      text: 'Data is average pr. day - viewing <?php if($range == "All"){echo "ALL DATA";}else if($range == "1 YEAR"){echo "LAST YEAR";}else{ echo "last ".$range;} ?>', 
      style: { 
       fontSize: '<?php echo $sizeSubTitle ?>' 
      } 
     }, 
     xAxis: { 
      title: { 
       enabled: true, 
       text: 'EW', 
       align: 'high' 
      }, 
      min:-<?php echo $maxAxis ?>, 
      max:<?php echo $maxAxis ?>, 
      offset: <?php echo $offSetX ?>, 
      tickInterval: <?php echo $tickInterval ?> 
     }, 
     yAxis: { 
      title: { 
       text: 'NS', 
       align: 'high' 
      }, 
      min:-<?php echo $maxAxis ?>, 
      max:<?php echo $maxAxis ?>, 
      offset:<?php echo $offSetY ?>, 
      lineWidth:1, 
      tickInterval: <?php echo $tickInterval ?> 
     }, 
     legend: { 
      layout: 'vertical', 
      align: 'left', 
      verticalAlign: 'top', 
      x: <?php echo $legendX ?>, 
      y: <?php echo $legendY ?>, 
      floating: true, 
      backgroundColor: '#FFFFFF', 
      borderWidth: 1, 
      itemStyle: { 
       fontSize: '<?php echo $legendSize ?>' 
      } 
     }, 
     plotOptions: { 
      scatter: { 
       marker: { 
        radius: <?php echo $lineWidth ?>, 
        states: { 
         hover: { 
          enabled: false, 
          lineColor: 'rgb(100,100,100)' 
         } 
        }, 
        symbol: "circle" 
       }, 
       states: { 
        hover: { 
         marker: { 
          enabled: false 
         } 
        } 
       }, 
       tooltip: { 
        headerFormat: '<b>{series.name}</b><br>', 
        pointFormat: 'EW: {this.x} mm<br>NS: {this.y} mm<br>Date: {this.point.z}' 
       } 
      } 
     }, 
     series: [{ 
      color: '#990000', 
      name: '<?php echo $legFive ?>', 
      data:[<?php echo join(${$da}, ',') ?>] 
     },{ 
      color: '#ff0000', 
      name: '<?php echo $legFour ?>', 
      data:[<?php echo join(${$da4}, ',') ?>] 
     },{ 
      color: '#ffcc33', 
      name: '<?php echo $legThree ?>', 
      data:[<?php echo join(${$da3}, ',') ?>] 
     },{ 
      color: '#66ff66', 
      name: '<?php echo $legTwo ?>', 
      data:[<?php echo join(${$da2}, ',') ?>] 
     },{ 
      color: '#3300ff', 
      name: 'Last', 
      data:[<?php echo join(${$da1}, ',') ?>] 
     }] 
    }); 
    <?php }//for ?> 
}); 

回答

0

UNIX時間戳應該乘以1000,並用X升序進行排序。你可以附加你的示例系列數據:「echo join($ {$ da1},',')」?

+0

實例:[0] => [X:-27.31,Y:6.51,Z:1363651200000] [1] => [X:-27.32,Y:6.28,Z:1363737600000] [2 ] => [x:-26.85,y:6.65,z:1363824000000] [3] => [x:-26.94,y:6.51,z:1363910400000] [4] => [x:-27.03,y :6.78,z:1363996800000] [5] => [x:-27.39,y:7.19,z:1364083200000]並且乘以1000:$ datetime = $ row ['datetime'] * 1000;和ASC到位:ORDER BY EventTime ASC「; –

+0

如果你有xAxis作爲日期時間,x應該有時間戳記,並且它需要是數字,而不是字符串 –

+0

這是一個散點圖。這個數組沒有額外的z,也沒有在數組中命名x和y.eks。$ data [] =「[$ dE,$ dN]」; $ dE和x一樣,$ dN是y,Works!X不是日期時間,只是一個數字,因爲y是。問題是工具提示。我不會將datetime作爲額外的信息添加到工具提示。因此,我試圖擴展數據數組到$ data [] =「[$ dE,$ dN,$ datetime]」希望我可以使用$ datetime作爲工具提示中的每個點的額外信息。我已經嘗試過this.point沒有運氣。 –

1

見這個例子如何去了解它:

http://jsfiddle.net/jlbriggs/fbMQf/

您需要與鍵 - >值對的對象來提供數據,並在格式化相應調用。

see fiddle for code 
+0

[json_enconde](http://php.net/manual/en/function.json-encode .php)可能有助於從PHP獲取正確的JSON。 –