2011-01-31 2 views
2

Я хотел бы gnuplot некоторые данные для различных устройств, где данные - время, когда эти устройства находятся в определенном состоянии.gnuplot plot дискретные (?) Данные времени

Например, данные устройства к е, построить время они идут в тревогу, то выход, например, Устройство переходит в режим тревоги 11:00, выход тревоги в 12:00, и т.д ..

dev_a | x------x 
dev_b |  x-----x 
dev_c | x-x 
dev_d |   x------------------- 
dev_e |  x-----x  x-----x 
     |_______________________________ 
      |  |  |  |  | 
     11:00 12:00 13:00 14:00 15:00 

Входные данные должны были бы быть получены из бревен, подобных:

.... 
11:00 dev_a alarm on 
    .... 
11:00 dev_c alarm off 
11:10 dev_b alarm on 
    .... 
12:00 dev_a alarm off 
    .... 

Я не совсем уверен, как начать работу — колоссальный сюжет?

+0

Возможно, вы посмотрите на http://stackoverflow.com/questions/7684475/plotting-labeled-intervals-in-matplotlib-gnuplot – XTL

ответ

2

Для начала, вы должны настроить ваш входной файл:

11:00 1 тревоги dev_a на
11:01 3 dev_c сигнал выкл
11:10 2 dev_b сигнализации на
12:00 1 dev_a сигнал от
12:10 2 сигнализации dev_b на
11:15 4 тревоги dev_d на
11:25 4 dev_d сигнал от

затем использовать

set xdata time 
set timefmt "%H:%M" 
plot "file.txt" using 1:2:ytic(3) with points 

Вам понадобится второй столбец, чтобы поместить все записи аварийного сигнала a на метку оси 1 y.

Это даст вам почти то, что вы хотите. Единственное, чего не хватает, это линии между точками. Возможность состоит в том, чтобы использовать стрелки (без головы стрелки, так что на самом деле это строка) и создать файл сценария, чтобы сразу отобразить все стрелки. Проверьте ответ Тома с этим вопросом на хороший пример: Plotting arrows with gnuplot

1

Если вы каким-то образом удается преобразовать и разделить ваши файлы журнала в некотором формате, как это:

 
#time dev_a 
11:00 1 
12:00 1 
 
#time dev_b 
11:10 2 
12:10 2 

...

Это формат времени в поплавках, отдельные файлы на устройство, включение/выключение будильника на const dev_id. Черчение становится легко:

 
set style data linespoints 
set yrange [0:5] 
set xdata time 
set timefmt "%H:%M" 
plot "dev_a.data" using 1:2 title "dev_a", "dev_b.data" using 1:2 title "dev_b", ... 

описание Ok, ось у по-прежнему является проблемой, но вы можете комбинировать, что с Martins ответом.

+0

Неплохая идея, но для каждого включения/выключения потребуется отдельный файл цикла для каждого устройства, так что, если этого не происходит много раз, это нормально. – Martin

+0

пытается массировать журналы и попробовать свои предложения. однако, точка lumpns правильная, каждый из устройств будет часто входить/выходить из системы - не думал об этом. пример почасового графика для простоты, фактический был бы вторым разрешением с высокой частотой. отдельные файлы данных для каждого аварийного сигнала были бы непрактичными. – hanlonj

+0

, чтобы уточнить, сколько файлов данных потребуется dev_e?1 или 2 – hanlonj

Смежные вопросы