Создание графиков с помощью pChart
Модератор: immortal
-
- Сообщения: 107
- Зарегистрирован: Сб июн 30, 2012 7:54 am
- Благодарил (а): 0
- Поблагодарили: 14 раз
Создание графиков с помощью pChart
Очень бы хотелось получить краткий ликбез, по созданию графиков для данного проекта "умного дома"
Уж больно не хватает их разнообразия.
С библиотеками 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/
А не понятно, как происходит взаимодействие данных отправляемых с ардуино с этими графиками.
Было бы интересно разобрать тут пример, а потом по аналогии придумать что нибудь свое
Уж больно не хватает их разнообразия.
С библиотеками 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/
А не понятно, как происходит взаимодействие данных отправляемых с ардуино с этими графиками.
Было бы интересно разобрать тут пример, а потом по аналогии придумать что нибудь свое
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Создание графиков с помощью pChart
Для начала -- система ведёт историю изменений свойств объектов в таблице 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='';
}
}
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 107
- Зарегистрирован: Сб июн 30, 2012 7:54 am
- Благодарил (а): 0
- Поблагодарили: 14 раз
Re: Создание графиков с помощью pChart
то есть, сначала данные пишуться в таблицу phistory, а график (файл index.php ) данные берет не с потока от ардуино а из этой таблицы?
Если я захочу создать например вот такой график
http://pchart.sourceforge.net/documenta ... vexemple26
то я должен прописать в его коде пути к этой таблице (phistory)?
Еще есть такой проект Pachube.com там мне понравились стрелочные индикаторы (типа манометра). Можно ли что-то подобное создать для Вашего сервера? или это все будет сильно грузить комп?
Если я захочу создать например вот такой график
http://pchart.sourceforge.net/documenta ... vexemple26
то я должен прописать в его коде пути к этой таблице (phistory)?
Еще есть такой проект Pachube.com там мне понравились стрелочные индикаторы (типа манометра). Можно ли что-то подобное создать для Вашего сервера? или это все будет сильно грузить комп?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Создание графиков с помощью pChart
всё верно. любые графики строятся на основе сохранённой истории значений, а arduino только отправляет системе текущие значенияBATONS писал(а):то есть, сначала данные пишуться в таблицу phistory, а график (файл index.php ) данные берет не с потока от ардуино а из этой таблицы?
этот график по большому счёту отличается параметрами настройки. сами данные можно выбирать таким же образом как это сделано сейчас. т.е. более приятное для глаз представление там. надо посмотреть, может быть будет удобно сделать такое представление для всех графиков по-умолчанию.BATONS писал(а): Если я захочу создать например вот такой график
http://pchart.sourceforge.net/documenta ... vexemple26
то я должен прописать в его коде пути к этой таблице (phistory)?
интересный проект, кстати.BATONS писал(а): Еще есть такой проект Pachube.com там мне понравились стрелочные индикаторы (типа манометра). Можно ли что-то подобное создать для Вашего сервера? или это все будет сильно грузить комп?
индикаторы вполне можно сделать. надо подумать насчет кода, который можно было бы разместить либо в меню либо на сцену, чтобы был такого плана манометр.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 165
- Зарегистрирован: Пт янв 20, 2012 3:05 pm
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Создание графиков с помощью pChart
Хотелось бы добавить в Pchat
1. возможность строить графики по дням и месяцам.
2. возможность изменения название свойства (слева)
3. автоматически расставлять метки по оси х. (по y все нормально)
1. возможность строить графики по дням и месяцам.
2. возможность изменения название свойства (слева)
3. автоматически расставлять метки по оси х. (по y все нормально)
- Вложения
-
- Pv.PNG (20.83 КБ) 16169 просмотров
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Создание графиков с помощью pChart
в недавно обновлённой версии (в исходниках) можно строить графики по дням
например такая ссылка ( /pChart/?p=ws.tempOutside&type=7d&width=580 ) даёт картинку за 7 дней (параметр type=7d)
например такая ссылка ( /pChart/?p=ws.tempOutside&type=7d&width=580 ) даёт картинку за 7 дней (параметр type=7d)
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Создание графиков с помощью pChart
да, есть такое. в планах на ближайшее времяtammat писал(а):Все супер,кроме оси X
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Создание графиков с помощью pChart
В исходниках обновил немного систему графиков pchart.
Даже при сохранении текущих параметров вызова, они выглядят по-лучше. Но добавились ещё дополнительные параметры:
* при добавлении в URL >ype=curve -- будет выводится график в виде сглаженной линии
* при добавлении в URL &title=some_title -- будет использоваться some_title в качестве заголовка графика (иначе значение параметра p, как и раньше)
* при добавлении в URL &px=num (например, &px=20) -- можно указать минимальное расстояние между точками по горизонтали, чтобы значения не располагались слишком близко
ну и сейчас по-лучше будут показываться подписи со временем по нижней оси (без наложения друг на друга)
Пример:
Даже при сохранении текущих параметров вызова, они выглядят по-лучше. Но добавились ещё дополнительные параметры:
* при добавлении в URL >ype=curve -- будет выводится график в виде сглаженной линии
* при добавлении в URL &title=some_title -- будет использоваться some_title в качестве заголовка графика (иначе значение параметра p, как и раньше)
* при добавлении в URL &px=num (например, &px=20) -- можно указать минимальное расстояние между точками по горизонтали, чтобы значения не располагались слишком близко
ну и сейчас по-лучше будут показываться подписи со временем по нижней оси (без наложения друг на друга)
Пример:
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 86
- Зарегистрирован: Вт авг 28, 2012 5:36 pm
- Откуда: Kiev, Ukraine
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Создание графиков с помощью pChart
А как установить величину оси y?
Например не температуру а мощность?
Например не температуру а мощность?