2013-10-28 24 views
0

我是Highcharts的新手,基本上是开发和编码...我花了大约一个星期的时间来适应我在网上找到的一些例子,制作一个标准图表,可以在一个样条中显示两个数据序列图表。在一个样条图中显示两个(或更多)?

我设法修改了我在网上找到的样本,使我的图表能够与单个serie一起工作,但只要我尝试绘制第二个serie,它就不起作用......明确地说,我没有理解它的工作方式......我很确定这并不难,因为我的图表非常基本,但我真的不知道该怎么做!

让我们用我的情况开始......

  1. 我做了一个名为“data3.php”文件连接到MySQL数据库,并返回数据的3列:日期,然后2个不同的温度(我想要显示)。基本上,data3.php似乎为 结果似乎是正确的,以correctely工作(您可以点击此处查看:http://www.airone.ch/etienne/graph/high/data3.php) 它返回所有DATAS当天,在下面的格式,每次10分钟:

    周一,2013 00:00:00 14.0 32.7

这里10月28日,是我生成data3.php finle代码:

<?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); 

?> 

让我们假设这部分的数据返回工作correctely ED是什么,我需要在我的图表绘制...

  1. 我现在已经一个名为用来显示图表(此处可见:http://www.airone.ch/etienne/graph/high/index2.php)“index2.php”。我设法修改了我发现的代码,使其与“data3.php”一起工作,但我的问题是它只显示第一个温度而不是第二个温度。在其他owrds中,我怎样才能修改我的index2.php使它画两条线,或基本上更多(我计划绘制6个不同的温度)? 这里是我的index2.php代码:

    使用PHP与MySQL

    VAR图Highcharts; $(document)。就绪(函数(){ VAR选项= { 图表:{ renderTo: '容器', defaultSeriesType: '花键', marginRight:130, marginBottom:25 }, 标题:{ 文本:“温度杜capteur”, X:-20 //中心 }, 字幕:{ 文本: '', X:-20 }, XAXIS:{ 类型: '日期时间', tickInterval:3600 * 1000 ,//一小时 tickWidth:0, gridLineWidth:1, 标签:{ 对齐: '中心', X:-3, Y:20, 格式化:函数(){ 返回Highcharts.dateFormat( '%H',这。值); }} } , Y轴:{ 标题:{ 文字: '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); 
          }); 
         }); 
    

所以,现在...有人可以帮助我使我的图表工作更多的一个系列?

在此先感谢,我搞乱说我在这一切有点损失...

问候和布拉沃已经阅读一切:-)

回答

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; 
相关问题