php - 如何使用 php mysql 在图表中显示单日数据

标签 php mysql graph highcharts

我正在使用 HighCharts,我在图表上显示温度。我在想是否可以使用 highchart 图表仅显示一天或 1 周或一个月以上的数据。现在我从 MySQL DB 获取从第一条记录到最新一条记录的所有数据。这是代码。 这是 data.php -

<?php
$con = mysql_connect("192.168.100.107:3306","root","hannan786");

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

mysql_select_db("pi", $con);

$sth = mysql_query("SELECT * FROM temperature ");
$rows = array();
$rows['Temperature'] = 'temperature';
while($r = mysql_fetch_array($sth)) {
    $rows['data'][] = $r['temperature'];
}


$result = array();
array_push($result,$rows);



print json_encode($result, JSON_NUMERIC_CHECK);

mysql_close($con);
?>

这是显示图形数据的主页的代码 -

<!DOCTYPE HTML>
<html>
    <head>
    <meta http-equiv="Refresh" Content="5">

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Temperature</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 () {
    var chart;
    $(document).ready(function() {
        $.getJSON("data.php", function(json) {

            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    type: 'line',
                    marginRight: 130,
                    marginBottom: 25
                },
                title: {
                    text: 'Temperature',
                    x: -20 //center
                },
                subtitle: {
                    text: '',
                    x: -20
                },
                xAxis: {
                    categories: ['Temperature']
                },
                yAxis: {
                    title: {
                        text: 'Amount'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    formatter: function() {
                            return '<b>'+ this.series.name +'</b><br/>'+
                            this.x +': '+ this.y;
                    }
                },
                legend: {
                    layout: 'vertical',
                    align: 'right',
                    verticalAlign: 'top',
                    x: -10,
                    y: 100,
                    borderWidth: 0
                },
                series: json
            });
        });

    });

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

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

    </body>
</html>

现在我得到这个作为输出 -

Output

最佳答案

您可以使用 Highcharts Api 的 setExtremes() 方法。您只需提供最小值和最大值,我认为在您的情况下,它们由相同的日期对象组成。

This是一个 fiddle 作为如何使用它的示例。

chart.xAxis[0].setExtremes(
    Date.UTC(2007, 0, 1),
    Date.UTC(2007, 11, 31)
);

文档在这里:http://api.highcharts.com/highstock#Axis.setExtremes

关于php - 如何使用 php mysql 在图表中显示单日数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583754/

相关文章:

php - 让 2 个模块在 magento 中使用相同的名称

sql - 是否可以在子字符串函数中使用字符代替位置?

mysql - 同一 Mysql 数据库的两个实例之间的加入顺序不同

c++ - 图 - 强连通分量

php - HTML/PHP Post方法到不同的服务器

php - Symfony2 查找重复行并对另一列求和

php - 304 : Not modified and front end caching

创建触发器时 MySQL 语法错误

c++ - 生成随机图

graph - A* 算法和游戏