0

我是 Highcharts 的新手,基本上是在开发和编码方面......我现在花了大约一周的时间来修改我在网上找到的一些示例,以制作一个标准图表,该图表将在一个样条图中显示两个系列的数据。

我设法修改了我在网上找到的样本,以使我的图表适用于一个系列,但是一旦我尝试绘制第二个系列,它就不起作用了……当然,我不明白它的工作方式。 ..我很确定这并不难,因为我的图表非常基础,但我真的不知道该怎么做!

那么让我们从我的情况开始......

  1. 我已经完成了一个名为“data3.php”的文件,它连接到 mysql 数据库并返回 3 列数据:日期,然后是 2 个不同的温度(我想显示)。基本上,data3.php 似乎工作正常,因为结果似乎正确(您可以在这里查看:http ://www.airone.ch/etienne/graph/high/data3.php )它返回当前的所有数据天,每 10 分钟,格式如下:

    2013 年 10 月 28 日星期一 00:00:00 14.0 32.7

这是我生成 data3.php 文件的代码:

<?php

$con = mysql_connect("localhost","username","password");


if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);
$result = mysql_query("SELECT *
FROM pouleto
WHERE (
date( id ) = curdate( )
)
AND extract(
MINUTE FROM `id` )
IN ( 0, 10,20, 30, 40, 50 );");


while($row = mysql_fetch_array($result)) {
$uts=strtotime($row['id']); //convertir a Unix Timestamp
  $date=date("l, F j, Y H:i:s",$uts);
  //  echo $valor3 . "\t" . $row['Temperature sensor 1']. "\n";
echo $date . "\t" . $row['Temperature sensor 1']. "\t" . $row['Temperature sensor 3']. "\n";

}


/*
 while($row = mysql_fetch_array($result)) {
   echo $row['id'] . "\t" . $row['Temperature sensor 1']. "\n";
}
*/
mysql_close($con);

?>

让我们假设这部分工作正常,因为返回的数据是我需要在我的图表中绘制的......

  1. 我现在有一个名为“index2.php”的文件,用于显示图表(在此处可见:http ://www.airone.ch/etienne/graph/high/index2.php )。我设法修改了我发现的代码以使其与“data3.php”一起使用,但我的问题是它只显示第一个温度而不显示第二个温度。换句话说,我如何修改我的 index2.php 以使其绘制两条线,或者基本上更多(我计划绘制多达 6 个不同的温度)???这是我的 index2.php 代码:

    在 PHP 和 MySQL 中使用 Highcharts

    var 图表;$(document).ready(function() { var options = { chart: { renderTo: 'container', defaultSeriesType: 'spline', marginRight: 130, marginBottom: 25 }, title: { text: 'Temperature du capteur', x: -20 //center }, subtitle: { text: '', x: -20 }, xAxis: { type: 'datetime', tickInterval: 3600 * 1000, // 一小时 tickWidth: 0, gridLineWidth: 1, 标签:{ align: 'center', x: -3, y: 20, formatter: function() { return Highcharts.dateFormat('%H', this.value); } } }, yAxis: {title: { text: 'Degres' },
                    },
                    tooltip: {
                        formatter: function() {
                          return Highcharts.dateFormat('%H:%M', this.x-(1000*3600)) +' - <b>'+ this.y + ' degres</b>';
                        }
                    },
                    legend: {
                        layout: 'vertical',
                        align: 'right',
                        verticalAlign: 'top',
                        x: -10,
                        y: 100,
                        borderWidth: 0
                    },
                    series: [{
                        name: 'Degres',
                    shadow : true,
                tooltip : {
                             valueDecimals : 2}
                    }]
                }
                // Load data asynchronously using jQuery. On success, add the data
                // to the options and initiate the chart.
                // This data is obtained by exporting a GA custom report to TSV.
                // http://api.jquery.com/jQuery.get/
                jQuery.get('data3.php', null, function(tsv) {
                    var lines = [];
                    traffic = [];
                    try {
                        // split the data return into lines and parse them
                        tsv = tsv.split(/\n/g);
                        jQuery.each(tsv, function(i, line) {
                            line = line.split(/\t/);
                            date = Date.parse(line[0] +' UTC');
                            traffic.push([
                                date,
                                parseInt(line[1].replace(',', ''), 10)
                            ]);
                        });
                    } catch (e) {  }
                    options.series[0].data = traffic;
                    chart = new Highcharts.Chart(options);
                });
            });
    

所以现在......有人可以帮助我使我的图表适用于更多的系列吗????

在此先感谢,我必须说我在这一切中有点失落......

阅读所有内容的问候和喝彩:-)

4

1 回答 1

0

添加第二行:

series: [{
  name: 'Degres',
  shadow: true,
  tooltip: {
      valueDecimals: 2
  }
}, {
  name: 'Second value',
  shadow: true,
  tooltip: {
      valueDecimals: 2
  }
}]

然后定义更多的系列数据:

var lines = [],
    traffic = [], 
    secondSeries = [];

加分:

traffic.push([
  date,
  parseInt(line[1].replace(',', ''), 10)
]);
secondSeries.push([
  date,
  parseInt(line[2].replace(',', ''), 10)
]);

最后一件事,将数据添加到选项中:

options.series[0].data = traffic;
options.series[1].data = secondSeries;
于 2013-10-29T13:06:05.963 回答