从JSON php导入到Highcharts绘制多个系列

干帕特里克

因为我对JS很陌生,所以我不明白如何在我的代码中实现多个数据系列

这是我用作数据采集器的php页面:

getTrendData-TIMEREQUESTED-hms.php

<?php
    //Define possible Argument request
    $format = $_GET['format'];

    if($format=='json')    {
        header("Content-type: text/json");
    }

    //Define database credential
    $servername = "localhost";
    $username   = "test";
    $password   = "test";
    $dbname     = "test";
    try {
        //Open connection to mysql_db from defined Database credentials
        $connection = mysqli_connect($servername, $username, $password, $dbname) or die ("Error " . mysqli_error($connection));
        $sql   = "select TIMEREQUESTED,TS FROM TIMEREQUESTED ORDER BY TS;";
        $result = mysqli_query($connection, $sql) or die ("Error in Selecting " . mysqli_error($connection));
        //create an array
        $data = array();
        while($row = mysqli_fetch_assoc($result))    {
            $TIMEREQUESTED = strtotime($row['TIMEREQUESTED'])*1000;
            $TS = strtotime($row['TS'])*1000;
            $data[] = array($TS, $TIMEREQUESTED);
        }

        echo json_encode($data);
        //close the db connection
        mysqli_close($connection);
    }

    catch(PDOException $e)  {
        echo $e->getMessage();
    }

    ?>

比起我在HighCharts中包含一个Ajax调用,它每2500毫秒调用一次自己,

getTrendData-TIMEREQUESTED-hms.php

[[1461241983000,5.67,0],[1461242015000,16.67,0],[1461242164000,16.67,0],[1461242303000,26.25,0],[1461242835000,-2.5,0],[1461242869000,-2.5,0],[1461242991000,1.5,0],[1461243034000,3.14,0],[1461243374000,-14.22,0],[1461243456000,-11.92,0],[1461244995000,0,0],[1461245036000,-3.6,140],[1461245208000,-3,140],[1461245260000,3.56,140],[1461245312000,2.1,140],[1461245346000,2.1,140],[1461245411000,3.5,140],[1461245442000,3.5,140],[1461245479000,-1,140],[1461245757000,-0.8,140],[1461245809000,-0.69,140]]

TIMEREQUESTED-hms.html

function buildTIMEREQUESTED() {
  var chart;
  var dataSource = 'getTrendData-TIMEREQUESTED-hms.php?format=json';
  var ChartHeight = window.innerHeight;

  function requestData() {
    $.ajax({
      url: dataSource,
      success: function(points) {
        chart.series[0].setData(points, true);
        setTimeout(requestData, 2500);
      },
      cache: false
    });
  }
  $(document).ready(function() {
    //add our div for the chart
    $("#container").append("<div id=chart-laptime style='width:100%''></div>");
    chart = new Highcharts.Chart({
      chart: {
        height: ChartHeight,
        renderTo: 'chart-laptime',
        defaultSeriesType: 'line',
        events: {
          load: function() {
            requestData();
          }
        },
      },
      tooltip: {
        enabled: true,
        formatter: function() {
          s = (this.y / 1000);
          m = Math.floor(s / 60);
          h = Math.floor(m / 60);
          s = s % 60;
          m = m % 60;
          h = h % 24;
          if (h < 9) h = "0" + h;
          if (m < 9) m = "0" + m;
          if (s < 9) s = "0" + s;
          return '<span style="color:black">Time Zero - </span>' + [m, s].join(':');
        }
      },
      title: {
        text: 'TIMEREQUESTED'
      },
      subtitle: {
        text: 'BEST 5 CAR AVEREGE LAPTIME IN LAST 10 MINUTES'
      },
      xAxis: {
        type: 'datetime',
        title: {
          text: 'RACE TIME'
        }
      },
      yAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
          millisecond: '%H:%M:%S',
        },
        //dateFormat: {"%H:%M:%S.%L"}
        title: {
          text: 'TIMEREQUESTED'
        }
      },
      series: [{
        name: 'TIMEREQUESTED',
        showInLegend: false,
        //tooltip: {type: 'datetime',},
        data: [],
      }]
    }); //end chart               
  }); //end document.ready
}

这样,我可以正确显示单个系列,但是通过MySQL查询,我可以从数据库中获取更多列,并在json文件的每一行中进行解析(如php请求中的JSON文件所示) ,每个数组都有第三个值),但我无法理解如何显示多个数据序列,xAxis上始终是JSON文件的第一列,而yAxis上每次都有不同的列。

您能给我一些关于如何在同一张图上显示多个序列的建议吗?非常感谢,

此致。

拉胡尔·沙玛(Rahul Sharma)
var dataForTwoSeries = [[1461241983000,5.67,0],[1461242015000,16.67,0],[1461242164000,16.67,0]]; //your data, just took 3 elements. Should work for any number of elements.
var seriesOne = [];
var seriesTwo = [];
$.each(dataForTwoSeries, function(index, dataPoints){
   var seriesOneDataPoint = [dataPoints[0], dataPoints[1]];
   var seriesTwoDataPoint = [dataPoints[0], dataPoints[2]];

   seriesOne.push(seriesOneDataPoint);
   seriesTwo.push(seriesTwoDataPoint);
});

然后,您必须在图表对象中创建2个系列,例如

series: [{
    name: 'seriesName1',
    showInLegend: false,
    data: [],
},{
    name: 'seriesName2',
    showInLegend: false,
    data: [],
}]

然后在您的requestData方法中,为两个

chart.series[0].setData(seriesOne, false); //redraw after setting data for second series
chart.series[1].setData(seriesTwo); //boolean redraw is true by default, don't need to pass it

编辑:更新代码后,这些是您进一步需要进行的更改。

$.ajax({url: dataSource, success: function(dataForTwoSeries) //dataForTwoSeries is the data you get from the request 
  {
  //var dataForTwoSeries = []; you don't need this.
  var seriesOne = []; //these two don't have to be global.
  var seriesTwo = [];
  $.each(dataForTwoSeries, function(index, dataPoints){

    var seriesOneDataPoint = [dataPoints[1], dataPoints[0]];
    var seriesTwoDataPoint = [dataPoints[2], dataPoints[0]];

    seriesOne.push(seriesOneDataPoint);
    seriesTwo.push(seriesTwoDataPoint);
  }); // draw chart after iteration and not during each interation
    chart.series[0].setData(seriesOne, false); //redraw after setting data for second series
    chart.series[1].setData(seriesTwo); //boolean redraw is true by default, don't need to pass it

    setTimeout(requestData, 2500);

  },
  cache: false
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Highcharts JSON PHP多个系列

来自分类Dev

Highcharts JSON PHP多个系列

来自分类Dev

从JSON在单个Highcharts图中绘制多个系列

来自分类Dev

Highcharts来自PHP的多个系列JSON

来自分类Dev

JSON字段从Postgres导入到Elasticsearch

来自分类Dev

Highcharts:使用 JSON 数据创建多个系列

来自分类Dev

如何将多个 json 部分(全部在一个文件中)导入到 python/pandas

来自分类常见问题

使用mongoimport将json从文件导入到mongodb

来自分类Dev

将Firebase生成的json数据集导入到mongodb

来自分类Dev

将Json File URL导入到Pandas数据框

来自分类Dev

读取JSON文件,解析并导入到Parse

来自分类Dev

编辑导入到 MongoDB 的 JSON 文件的内容

来自分类Dev

检索具有多个系列的Highcharts的JSON数据?

来自分类Dev

如何通过JSON更新具有多个系列的Highcharts?

来自分类Dev

如何将json数据传递到highcharts系列?

来自分类Dev

从单个JSON数据容器在Highchart中绘制多个系列

来自分类Dev

从Ajax生成的HTML表到Highcharts绘制多个系列

来自分类Dev

MSSQL Server到PHP数组到JSON编码到Highcharts

来自分类Dev

导入php json文件到swift

来自分类Dev

将JSON数据作为表格导入到Google表格中

来自分类Dev

将数据从Excel / CSV文件导入到angularjs json对象中

来自分类Dev

将JSON数据导出和导入到Cytoscape.js

来自分类Dev

如何将json从云存储上的文件导入到Bigquery

来自分类Dev

Django固定装置:通过JSON将HTML数据导入到TextField中

来自分类Dev

使用嵌套数组将JSON文件导入到SQL Server表中

来自分类Dev

将JSON导入到Objective-C时输出奇怪

来自分类Dev

将JSON数据导出和导入到Cytoscape.js

来自分类Dev

如何使用 JSON 文件作为 JS 对象而不将其导入到 webpack 编译代码中?

来自分类Dev

如何将数据从 JSON 文件导入到嵌入中?

Related 相关文章

  1. 1

    Highcharts JSON PHP多个系列

  2. 2

    Highcharts JSON PHP多个系列

  3. 3

    从JSON在单个Highcharts图中绘制多个系列

  4. 4

    Highcharts来自PHP的多个系列JSON

  5. 5

    JSON字段从Postgres导入到Elasticsearch

  6. 6

    Highcharts:使用 JSON 数据创建多个系列

  7. 7

    如何将多个 json 部分(全部在一个文件中)导入到 python/pandas

  8. 8

    使用mongoimport将json从文件导入到mongodb

  9. 9

    将Firebase生成的json数据集导入到mongodb

  10. 10

    将Json File URL导入到Pandas数据框

  11. 11

    读取JSON文件,解析并导入到Parse

  12. 12

    编辑导入到 MongoDB 的 JSON 文件的内容

  13. 13

    检索具有多个系列的Highcharts的JSON数据?

  14. 14

    如何通过JSON更新具有多个系列的Highcharts?

  15. 15

    如何将json数据传递到highcharts系列?

  16. 16

    从单个JSON数据容器在Highchart中绘制多个系列

  17. 17

    从Ajax生成的HTML表到Highcharts绘制多个系列

  18. 18

    MSSQL Server到PHP数组到JSON编码到Highcharts

  19. 19

    导入php json文件到swift

  20. 20

    将JSON数据作为表格导入到Google表格中

  21. 21

    将数据从Excel / CSV文件导入到angularjs json对象中

  22. 22

    将JSON数据导出和导入到Cytoscape.js

  23. 23

    如何将json从云存储上的文件导入到Bigquery

  24. 24

    Django固定装置:通过JSON将HTML数据导入到TextField中

  25. 25

    使用嵌套数组将JSON文件导入到SQL Server表中

  26. 26

    将JSON导入到Objective-C时输出奇怪

  27. 27

    将JSON数据导出和导入到Cytoscape.js

  28. 28

    如何使用 JSON 文件作为 JS 对象而不将其导入到 webpack 编译代码中?

  29. 29

    如何将数据从 JSON 文件导入到嵌入中?

热门标签

归档