Arhn - архитектура программирования

Отобразить два (или более) на одной сплайн-диаграмме?

Я новичок в Highcharts, и в основном занимаюсь разработкой и кодированием ... Я потратил около недели, чтобы адаптировать некоторые примеры, которые я нашел в Интернете, для создания стандартной диаграммы, которая отображала бы две серии данных в одной сплайн-диаграмме.

Мне удалось модифицировать образцы, которые я нашел в сети, чтобы моя диаграмма работала с одной единственной серией, но как только я пытаюсь нарисовать вторую серию, она не работает ... Определенно, я не понял, как это работает. .. Я почти уверен, что это не так уж и сложно, поскольку моя диаграмма действительно проста, но я действительно не знаю, как это сделать!

Итак, начнем с моей ситуации ...

  1. Я создал файл под названием «data3.php», который подключается к базе данных mysql и возвращает 3 столбца данных: дату, затем 2 разных температуры (которые я хочу отобразить). В принципе, кажется, что data3.php работает правильно, так как результат кажется правильным (вы можете проверить это здесь: http://www.airone.ch/etienne/graph/high/data3.php) Он возвращает все данные за текущий день для каждых 10 минут в следующем формате:

    28 октября 2013 г. 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:

    Использование Highcharts с PHP и MySQL

    var chart; $(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, // one hour tickWidth: 0, gridLineWidth: 1, labels: { 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);
                });
            });
    

Итак ... может ли кто-нибудь помочь мне заставить мою диаграмму работать с более чем одной серией ????

Заранее спасибо, я не могу сказать, что я немного потерялся во всем этом ...

С уважением и браво, что прочитали все :-)


Ответы:


1

Чтобы добавить вторую строку:

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;
29.10.2013
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..