У меня есть файл журнала, например:

40624.4866625463#Event1
40624.4866623727#Event1
40624.4866623727#Event1
40624.4866625463#Event1
40624.4866625463#Event1
40624.4866627315#Event1
40624.4866627315#Event1
40624.4866627315#Event1
40624.4866627315#Событие1

Куда:

  • первое число - дата и время. (Целое число — это номер дня, а дробная — время.)
  • # – разделитель полей.
  • Event1 - описание события.

Что я хотел бы сделать, так это построить график количества событий в движущемся временном окне. Окно будет около 15 секунд, но оно должно легко изменяться. Таким образом, график будет скоростью событий в зависимости от времени.

Я хотел бы использовать gnuplot, но готов использовать любые другие инструменты построения графиков, работающие в Windows.

Большое спасибо.

0
T33C 23 Мар 2011 в 13:31
У меня есть несколько вопросов по вашей проблеме: 1. Зачем использовать среднее количество событий, когда вы действительно знаете количество событий? 2. Что вы подразумеваете под «легко изменяемой»? Может быть, вы могли бы опубликовать эскиз, чтобы визуализировать то, к чему вы стремитесь?
 – 
Woltan
23 Мар 2011 в 13:40
- Вы правы, мне не нужно делить на временное окно, так как оно будет постоянным. Общее количество событий за время перемещения окна будет в порядке. Я не могу опубликовать изображение (ограничено прокси), но я ищу линейный график, который показывает нагрузку на мою систему с течением времени. Под переменной я подразумеваю, что для одного графика окно будет установлено на 15 с, но для другого графика может быть установлено окно на 1 с.
 – 
T33C
23 Мар 2011 в 13:47
Какую среду программирования вы используете? т.е. это оболочка unix (cygwin) с различными элементами или это «настоящее» приложение? Кроме того, в каких единицах времени представлено время (миллисекунды, микросекунды, секунды)? Вы должны быть в состоянии сделать это довольно легко, используя perl.
 – 
Carl Staelin
23 Мар 2011 в 14:59

1 ответ

Я не эксперт по gnuplot, но я думаю, что то, что вы пытаетесь сделать, невозможно с помощью gnuplot или, по крайней мере, не так просто и красиво. Что нужно gnuplot, так это файл данных, содержащий числа, чтобы построить их соответствующим образом. Если я вас правильно понял, вы пытаетесь суммировать события за произвольный период времени и отобразить это число в каком-то движущемся окне.

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

Изменить :

Другая альтернатива, с которой я только что столкнулся, это Asymptote. Я не использовал его сам, но похоже, что у него большой потенциал. Я обязательно посмотрю на него как-нибудь, а до тех пор, может быть, вы сможете проверить его и сообщить, как легко его подобрать;)

0
Woltan 28 Мар 2011 в 11:22
Спасибо, Вольтан. Но должен быть какой-то инструмент, который поддерживает это. Это не обязательно должен быть gnuplot. Конечно, ваш метод будет работать, и это то, что я сделал, я просто надеялся на более элегантный подход.
 – 
T33C
23 Мар 2011 в 20:00
Привет, T33C, я не думаю, что есть инструмент с именно тем интерфейсом, который вы ищете. Я думаю, что более вероятно, что вам придется предоставлять интерфейс самостоятельно, либо с помощью сценария, либо путем экспорта данных в другом формате. На мой взгляд, задача графической утилиты не в том, чтобы стать языком сценариев, а в том, чтобы поддерживать базовый набор форматов данных, где, я полагаю, ваш не соответствует этому.
 – 
Woltan
24 Мар 2011 в 10:06