gpt4 book ai didi

javascript - 在一张样条图中显示两个(或多个)?

转载 作者:行者123 更新时间:2023-11-30 01:07:36 25 4
gpt4 key购买 nike

我是 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 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);

?>

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

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

    将 Highcharts 与 PHP 和 MySQL 结合使用

    变量图表; $(文档).ready(函数() { 变量选项= { 图表: { 渲染到:'容器', 默认系列类型:'样条线', 右边距:130, 底部边距:25 }, 标题: { 文本:“捕获温度”, x: -20//中心 }, 副标题:{ 文本: '', x:-20 }, x轴:{ 类型:'日期时间', tickInterval: 3600 * 1000,//一小时 刻度宽度:0, 网格线宽: 1, 标签: { 居中对齐', x:-3, y:20, 格式化程序:函数(){ return Highcharts.dateFormat('%H', this.value); } } }, y 轴:{ 标题: { 文本:“度数” },
                    },
    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);
    });
    });

那么现在...有人可以帮助我让我的图表与多个系列一起使用吗???

提前致谢,我不得不说我对这一切有点失落......

感谢您阅读了所有内容:-)

最佳答案

添加第二行:

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;

关于javascript - 在一张样条图中显示两个(或多个)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19637462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com