2

下面是我在高位图表上的简单图表。一切看起来都很好,但我现在唯一的问题是我的数据只有两个 2012-05-26 01:00:00、200 和 2012-05-26 02:00:00,300。y 轴看起来很好。但在 x 轴上,时间显示为从 17:00 开始,到 18:00 结束,甚至没有显示日期。可能是什么问题呢?

<?php
    define('DB_HOST', '*******');
    define('DB_USER', 'user1');
    define('DB_PASSWORD', 'test1');
    define('DB_DATABASE', 'db1');

 $dbcnx = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
 mysql_select_db('db1');

$sql = "select unix_timestamp(datetime1) as datetime1, value1 from data";
$result = mysql_query($sql,$dbcnx);
$data = array();
while ($row = mysql_fetch_array($result)) {
   //extract $row;
   //$datetime1 = $row['dateTime1']*1000;
   $datetime = $row['datetime1']*1000; 
   //echo $datetime;
   echo $row['value1'];
   $val  = $row['value1'];
   // convert from Unix timestamp to JavaScript time
   $data[] = "[$datetime, $val]";
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highcharts Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">
$(function () {
    $(document).ready(function() {
      //alert("TS");
      var chart = new Highcharts.Chart({
      chart: {
         renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 25

      },

      series: 
        [{
         data: [<?php echo join($data, ',') ?>]
      }],
      xAxis: { type: 'datetime'}

   });
  });

});
        </script>
    </head>
    <body>
<script src="js/highcharts.js"></script>
<script src="js/modules/exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

    </body>
</html>
4

1 回答 1

3

我不知道你传递了什么数据。通过它的声音,您只传递了两个数据点。您是否确认查询正在提取您想要的数据?如果是这样,您可以在此处发布应该在 highchart 中的数据吗?另外,你能把网页视图源中生成的highcharts贴在这里吗?

至于 xaxis 标签,因为它们是日期时间格式,所以图表将以它认为合适的最佳方式呈现它们。如果您不喜欢它们的呈现方式,您可以使用dateTimeLabelFormats控制图表的日期时间格式。您还可以使用tickInterval控制显示的日期间隔。

于 2012-05-27T03:40:56.967 回答