"Живые" графики нужна помощь.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

Re: "Живые" графики нужна помощь.

Сообщение denis » Ср окт 02, 2013 3:54 pm

код такого плана:

Код: Выделить всё

<!DOCTYPE HTML>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <title>Highstock Example</title>
                <script type="text/javascript" src="./js/jquery-1.7.1.min.js"></script>
                <script type="text/javascript" language="javascript">





 var cnt = 0, seriesOptions = [],  names = ['темп 1',
											'темп 2', 
											'темп 3', 
											'темп 4',
											'темп 5']; 
 sensornames = ['1',
			    '2', 
				'3',
				'4',
				'5'];



		
    createAll();

    function createAll() {
	

	
        cnt = 0;
        $.each(names, function(i, name) {
		
	//	alert(sensornames[i]);
		
		 url = '/highcharts/mytest.php?name='+sensornames[i]
	//	alert (url);
            $.getJSON(url, function(data) {
                seriesOptions[i] = {name: name,
									data: data,
									tooltip: { yDecimals: 1}};
                cnt++;
                if (cnt == names.length) {
	//			alert('======');
                    createChart();
                }
            });
        });
    }

    function createChart() {

	  Highcharts.setOptions({
            lang: {
                months:   ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 
                           'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],

                shortMonths:   ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 
                           'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],

                weekdays: ['Вск', 'Пнд', 'Втр', 'Срд', 'Чтв', 'Птн', 'Сбт']
            }
        });

	
        window.chart = new Highcharts.StockChart({
		    chart : { renderTo : 'container',
					  zoomType: 'xy'
					},
			title : { text : 'График температур'},
			legend: { enabled : true ,
					  layout : 'horizontal',
			          align : 'center',
					  verticalAlign : 'top',
					  x : 0,
					  y : 20
   				    },
		
            xAxis : { maxZoom : 1 * 24 * 36000 },
            series : seriesOptions
        });
		
    }

                </script>
        </head>
        <body>
<script src="./js/highstock.js"></script>
<script src="./js/modules/exporting.js"></script>

<div id="container" style="height: 500px; min-width: 500px"></div>
        </body>
</html>
Urbas81
Сообщения: 289
Зарегистрирован: Вс сен 16, 2012 9:39 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: "Живые" графики нужна помощь.

Сообщение Urbas81 » Ср окт 02, 2013 4:04 pm

Примерно понятно, а как data формируется в mytest.php?
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

Re: "Живые" графики нужна помощь.

Сообщение denis » Ср окт 02, 2013 7:19 pm

он просто при каждом обращении выдает информацию по датчику (переменной в phistory) в формате:
[[1.375630949E+12, 25.1],[1.375630971E+12, 25.1], ..... ] т.е.
[ дата, значение ]
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: "Живые" графики нужна помощь.

Сообщение dmw » Пн окт 14, 2013 1:45 pm

Как все таки выводить несколько значений на один график используя /highcharts/sample2.php ?
Для одного значения график строится, а для нескольких не могу разобраться. Что туда нужно добавить?
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

Re: "Живые" графики нужна помощь.

Сообщение denis » Пн окт 14, 2013 8:27 pm

с помощью /highcharts/sample2.php видимо никак, см. код выше.
shurlin
Сообщения: 39
Зарегистрирован: Вс апр 22, 2012 3:18 pm
Благодарил (а): 0
Поблагодарили: 4 раза

Re: "Живые" графики нужна помощь.

Сообщение shurlin » Вт окт 15, 2013 6:27 pm

denis писал(а):он просто при каждом обращении выдает информацию по датчику (переменной в phistory) в формате:
[[1.375630949E+12, 25.1],[1.375630971E+12, 25.1], ..... ] т.е.
[ дата, значение ]
Денис, а не могли бы выложить код самого файла mytest.php

спасибо
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

Re: "Живые" графики нужна помощь.

Сообщение denis » Ср окт 16, 2013 12:48 pm

Пожалуйста, мне нетрудно. Код по сочетанию Класс.свойство выводит из phistory данные. Только прошу обратить внимание, что никаких обработок ошибок в запросах MySql не предусмотрено! Писал для себя, мне пока такого хватает.

Код: Выделить всё

<?php

$name = "MIN";
if (isset($_GET['name'])) $name="".$_GET['name'];

$d=preg_match('/(.+)\.(.+)/is', $name, $m);

$object_id = $m[1];

$rcn = mysql_connect("localhost","root",""); 
mysql_select_db("db_terminal"); 

 $sqlstr="SET SESSION time_zone = '-0:00'";
 $res=mysql_query($sqlstr);


$sqlstr="SELECT * FROM `objects` WHERE `TITLE`='{$object_id}'";
 
$res=mysql_query($sqlstr);


while ($row=mysql_fetch_array($res)) {

$object_id=$row['ID'];
$class_id = $row['CLASS_ID'] ;


};
 

$sqlstr="SELECT * FROM `properties` WHERE CLASS_ID=$class_id AND `TITLE`='{$m[2]}'";

$res=mysql_query($sqlstr);

 


while ($row=mysql_fetch_array($res)) {

$property_id=$row['ID'];


};

$sqlstr="SELECT * FROM `pvalues` WHERE PROPERTY_ID=$property_id AND `OBJECT_ID`=$object_id";
 
$res=mysql_query($sqlstr);

 


while ($row=mysql_fetch_array($res)) {

$value_id=$row['ID'];


};



$sqlstr = "SELECT UNIX_TIMESTAMP(`ADDED`) as `ADDED` , `VALUE` FROM `phistory` WHERE `VALUE_ID`=$value_id ORDER BY added";
$res = mysql_query($sqlstr); 

$number = mysql_num_rows($res);
printf("[");

$first = false;

$old_ADDED=0;

if ($number > 0) 
{
  while ($row=mysql_fetch_array($res)) {
 	$cur_ADDED=$row['ADDED'];

	if ($old_ADDED!=$cur_ADDED ){
	if ($first) printf(",");
    printf("[");
    printf($row['ADDED']*1000);
    printf(", ");
    printf($row['VALUE']+$delta);
    printf("]");
	$old_ADDED=$row['ADDED'];
	$first = true;
	}
	
 
  }
} 
printf("]");



mysql_close();

?>
shurlin
Сообщения: 39
Зарегистрирован: Вс апр 22, 2012 3:18 pm
Благодарил (а): 0
Поблагодарили: 4 раза

Re: "Живые" графики нужна помощь.

Сообщение shurlin » Ср окт 16, 2013 3:45 pm

Денис, спасибо.

Запустить получилось
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 28 раз
Поблагодарили: 28 раз

Re: "Живые" графики нужна помощь.

Сообщение denis » Ср окт 16, 2013 4:37 pm

shurlin писал(а):Денис, спасибо.

Запустить получилось

И это хорошо. Значит помог)

Вот бы еще люди своими интересными наработками поделились.
Gnork
Сообщения: 5
Зарегистрирован: Ср ноя 06, 2013 10:30 am
Благодарил (а): 0
Поблагодарили: 0

Re: "Живые" графики нужна помощь.

Сообщение Gnork » Вт ноя 12, 2013 9:34 am

Как на одном экране вывести 2-3-...-n стрелочных индикаторов с разными данными? Нужно иметь соответствующее количество файлов "sample.php" или один можно как-то размножить?
Понимаю, что вопрос для кого то совсем дурацкий, но я в этих скриптах мягко говоря не очень сильно разбираюсь.
Ответить