Страница 1 из 4

Создание графиков с помощью pChart

Добавлено: Вт июл 24, 2012 5:21 pm
BATONS
Очень бы хотелось получить краткий ликбез, по созданию графиков для данного проекта "умного дома"
Уж больно не хватает их разнообразия.

С библиотеками pChart понятно, создание разных графиков тоже вроде понятно, благо есть примеры:
http://pchart.sourceforge.net/documenta ... vexemple26
http://www.codetorment.com/2009/11/12/a ... ebmonitor/
http://www.web-junior.net/sozdanie-graf ... yu-pchart/

А не понятно, как происходит взаимодействие данных отправляемых с ардуино с этими графиками.

Было бы интересно разобрать тут пример, а потом по аналогии придумать что нибудь свое

Re: Создание графиков с помощью pChart

Добавлено: Вт июл 24, 2012 5:39 pm
sergejey
А не понятно, как происходит взаимодействие данных отправляемых с ардуино с этими графиками.
Для начала -- система ведёт историю изменений свойств объектов в таблице phistory. Для этого в настройках свойств класса можно задать время хранения истории. Собственно эта история и используется для вывода графиков.

Сам вывод графиков идёт через скрипт /pchart/index.php

вот к примеру часть кода которая добавляет значения на график (если тип графика часовой, т.е. есть параметр &type=24h к примеру)

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

  if (preg_match('/(\d+)h/', $type, $m)) {
   $total=(int)$m[1];
   for($i=0;$i<$total;$i++) {
    $dt=time()+($i-($total-1))*60*60;
    $new_dt=mktime(date('H', $dt), 0, 0, date('m', $dt), date('d', $dt), date('Y', $dt));
    $dt=$new_dt;
    $h=date('H', $dt);

    for($t=0;$t<60;$t+=10) {

     // здесь как раз выбираем значение из истории
     $ph=SQLSelectOne("SELECT ID, VALUE FROM phistory WHERE VALUE_ID='".$pvalue['ID']."' AND ADDED<=('".date('Y-m-d H:i:s', $dt+$t*60)."') ORDER BY ADDED DESC");
     if ($ph['ID']) {
      $values[]=$ph['VALUE'];
     } else {
      $values[]=0;
     }
     $hours[]=$h;
     $h='';
    }

   }

Re: Создание графиков с помощью pChart

Добавлено: Вт июл 24, 2012 5:49 pm
BATONS
то есть, сначала данные пишуться в таблицу phistory, а график (файл index.php ) данные берет не с потока от ардуино а из этой таблицы?

Если я захочу создать например вот такой график
http://pchart.sourceforge.net/documenta ... vexemple26
то я должен прописать в его коде пути к этой таблице (phistory)?

Еще есть такой проект Pachube.com там мне понравились стрелочные индикаторы (типа манометра). Можно ли что-то подобное создать для Вашего сервера? или это все будет сильно грузить комп?

Re: Создание графиков с помощью pChart

Добавлено: Ср июл 25, 2012 10:36 am
sergejey
BATONS писал(а):то есть, сначала данные пишуться в таблицу phistory, а график (файл index.php ) данные берет не с потока от ардуино а из этой таблицы?
всё верно. любые графики строятся на основе сохранённой истории значений, а arduino только отправляет системе текущие значения
BATONS писал(а): Если я захочу создать например вот такой график
http://pchart.sourceforge.net/documenta ... vexemple26
то я должен прописать в его коде пути к этой таблице (phistory)?
этот график по большому счёту отличается параметрами настройки. сами данные можно выбирать таким же образом как это сделано сейчас. т.е. более приятное для глаз представление там. надо посмотреть, может быть будет удобно сделать такое представление для всех графиков по-умолчанию.
BATONS писал(а): Еще есть такой проект Pachube.com там мне понравились стрелочные индикаторы (типа манометра). Можно ли что-то подобное создать для Вашего сервера? или это все будет сильно грузить комп?
интересный проект, кстати.
индикаторы вполне можно сделать. надо подумать насчет кода, который можно было бы разместить либо в меню либо на сцену, чтобы был такого плана манометр.

Re: Создание графиков с помощью pChart

Добавлено: Пн авг 27, 2012 11:14 am
tammat
Хотелось бы добавить в Pchat
1. возможность строить графики по дням и месяцам.
2. возможность изменения название свойства (слева)
3. автоматически расставлять метки по оси х. (по y все нормально)

Re: Создание графиков с помощью pChart

Добавлено: Ср авг 29, 2012 11:43 am
sergejey
в недавно обновлённой версии (в исходниках) можно строить графики по дням
например такая ссылка ( /pChart/?p=ws.tempOutside&type=7d&width=580 ) даёт картинку за 7 дней (параметр type=7d)

Re: Создание графиков с помощью pChart

Добавлено: Чт авг 30, 2012 1:47 pm
tammat
Все супер,кроме оси X

Re: Создание графиков с помощью pChart

Добавлено: Чт авг 30, 2012 3:54 pm
sergejey
tammat писал(а):Все супер,кроме оси X
да, есть такое. в планах на ближайшее время :)

Re: Создание графиков с помощью pChart

Добавлено: Ср сен 19, 2012 6:38 pm
sergejey
В исходниках обновил немного систему графиков pchart.
Даже при сохранении текущих параметров вызова, они выглядят по-лучше. Но добавились ещё дополнительные параметры:
* при добавлении в URL &gtype=curve -- будет выводится график в виде сглаженной линии
* при добавлении в URL &title=some_title -- будет использоваться some_title в качестве заголовка графика (иначе значение параметра p, как и раньше)
* при добавлении в URL &px=num (например, &px=20) -- можно указать минимальное расстояние между точками по горизонтали, чтобы значения не располагались слишком близко

ну и сейчас по-лучше будут показываться подписи со временем по нижней оси (без наложения друг на друга)

Пример:

Изображение

Re: Создание графиков с помощью pChart

Добавлено: Чт сен 20, 2012 1:52 pm
Vip
А как установить величину оси y?
Например не температуру а мощность?