#output #gnuplot #reverse
#вывод #gnuplot #обратный
Вопрос:
Я хотел бы отобразить данные в повторяющейся онлайн-диаграмме с:
plot "tail -140 logging.dat | tac -r" with lines
Я получаю сообщение об ошибке, файл не может быть открыт, однако в CLI
он выдает обратный список данных, как и ожидалось. Кто-нибудь может помочь мне с правильным синтаксисом, пожалуйста?
Комментарии:
1. Добавить
<
передtail
Ответ №1:
Просто для справки, вот только для gnuplot, следовательно, независимое от платформы решение. Проверьте через stats
общее количество строк. Если строк меньше N
(здесь: 140), будут выведены все строки, в противном случае — только последние 140.
Примечание: если вы это сделаете plot ... with lines
, gnuplot по умолчанию отобразит столбец 1 как x, а столбец 2 как y. Однако выходной график будет выглядеть одинаково, независимо от того, обращаете вы данные или нет. Итак, я не понимаю, зачем было бы изменять данные, если только вы не хотите отобразить что-то, чего вы здесь не показали, или, например, вывести перевернутую таблицу в виде текста.
Скрипт:
### plot N last lines of a file
reset session
FILE = "SO55221113.dat"
# create some random test data
set table FILE
set samples 1000
y0 = rand(0)
plot ' ' u 1:(y0=y0 rand(0)-0.5)
unset table
N = 140
stats FILE u 0 nooutput # get total number of lines into STATS_records
M = STATS_records<=N ? STATS_records : STATS_records-N
plot FILE u 1:2 w l lc rgb "green" ti "all values",
'' u 1:2 every ::M w l lc rgb "red" ti sprintf("last %d values",N)
### end of script
Результат: