January 15th, 2013

поумнеть

туплю вокруг гнуплота

# /usr/bin/gnuplot

#set output "ex1.png"
set key left box
set samples 50
plot [-10:10] sin(x),atan(x),cos(atan(x))


ЧЯДНТ и как исправить этот скрипт?
если руками запустить гнуплот и вбить эти строки, то всё почти ок.

(цель игры - из скрипта по набору точек построить график с легендой, сохранить его как .png)
поумнеть

gnuplot, продолжение

недоделанный скрипт:
#! /bin/bash

/usr/bin/gnuplot <<EOP

set terminal png size 640,480
set output "../www/ex1.png"
set grid x y y2
set xlabel "Time(sec)"
set ylabel "T1"
set y2label "T2"
set y2tics
datafile="/mnt/sdc1/temperature/log.csv"

plot datafile with lines, datafile using 2:3 with lines axes x1y2

EOP


пример файла с данными:
YY,MM,DD,HH,MM,temperature_1,temperature_2
2013,01,15,01,04, -4.5625, 19
2013,01,15,01,05, -4.5, 18.9375
2013,01,15,01,06, -4.625, 18.875
2013,01,15,01,07, -4.625, 18.8125
2013,01,15,01,08, -4.5625, 18.875


как заставить гнуплот корректно переваривать такую дату (или, как еще красиво состыковать вывод даты и ее ввод в гнуплот), и рисовать графики с температурами?
заголовки, положим, можно и скриптом из лога вычитать, а потом гнуплоту подсунуть, а как правильно быть с датой?

upd: поправил хтмл-синтаксис, теперь читаемо.
поумнеть

gnuplot, продолжение

#! /bin/bash

/usr/bin/gnuplot <<EOP

set terminal png size 800,480
set output "/opt/apache/www/daily.png"
set grid x y
set xlabel "Time"
set ylabel "Temperature"
set y2tics
set xdata time
set timefmt "%Y,%m,%d,%H,%M"
set format x "%H:%M"
datafile="/mnt/sdc1/temperature/log.csv"

plot datafile using 1:2 title "T outdoor" with lines, \
  datafile using 1:3 title "T in room" with lines axes x1y1

EOP

выдает почти правильную картинку. Непонятно только как настроить подписи под осью Х чтоб они были пореже.
поумнеть

gnuplot, продолжение

скрипт daily:
#! /bin/bash

/usr/bin/gnuplot <<EOP

set terminal png size 800,480
set output "/opt/apache/www/daily.png"
set grid x y
set xlabel "Time"
set ylabel "Temperature"
set y2tics
set xtics 600
set xdata time
set timefmt "%Y,%m,%d,%H,%M"
set format x "%H:%M"
datafile="/mnt/sdc1/temperature/log.csv"

plot datafile using 1:2 title "T outdoor" with lines, \
  datafile using 1:3 title "T in room" with lines axes x1y1

EOP



результат работы:


осталось продумать, чем/как резать лог так, чтоб куски были размером ровно в день/неделю/месяц и/или чем/как клеить по 7 дней в неделю и по Ы дней в месяц. Или наоборот, гадить в дни, а потом клеить в недели. Или гадить по два раза.
поумнеть

доза банных на коленке

допилил температуру. пока что будет так:
1. всё по крону
2. раз в минуту снимаю точку, пишу строку в общий лог
3. раз в минуту вынимаю (копирую, общий лог не порчу) из общего лога 120 последних записей в второй лог
4. раз в час вынимаю записи за сутки
5. раз в сутки за неделю
6. раз в неделю за месяц
7. раз в месяц правлю итого

из цги рисую графики (хех, а ведь там даже и цги не нужно)
1. за час
2. за 2 дня
3. за неделю
4. за месяц
5. итого

Итого, вся эта ботва требует вполне определенного цпу на пересчет графиков, и мало на отдачу.
Промежутки между подписями на графиках буду править по мере накопления данных и вылезания косяков.
полукосяк - текущие данные берутся из общего лога, раз в минуту чуть дописывается ааагромный общий лог.

Синхронизацию всех пяти картинок с своим сайтом сделаю как-нибудь потом.
поумнеть

недодуманное

В реальной жизни у программистов часто возникают проблемы с классификацией (например, сначала сортировать файлы по типу/назначению, а потом по принадлежности (все бинарники в /bin) или наоборот (все файлы корелдро пихнуть в \\\\??\\\\c:\\Progra~1\\Corel~2\\)).

обычно для решения этой проблемы поверх нее натягивается еще одна-две классификации.
поумнеть

задумчивое

Сношаюсь с разъёмом "для витой пары" типа "текстолитовая плата, из нее вертикально торчат ножевые разъёмы".

Либо я что-то делаю не так, либо автора этого разъёма надо расстрелять осиновым колом в задницу: разъём крайне нестабильный, контакт негарантированный, только после примерно полчаса возни все четыре пары проводов в паре разъёмов начали правильно контачить.

ps: замена аудиокабеля на "телефонный провод", по предварительным данным, позволяет видеть датчик даже в 10 метрах.
поумнеть

литдыбр

с внимательностью у меня не очень.
Целый день мучаюсь с подстановками, перестановками, сочетаниями, таблицами и прочими ужасами коммутации кучи проводов-переходников.

В голове маразм какой-то крутится:

"Целый день молился Сотоне
И похлопывал в зеленые ладоши".