Какие-нибудь (основанные на тексте) инструменты построения графиков в наборе инструментов Unix?


9

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

Мне нужно посчитать что-то в лог-файлах (которые я отслеживаю tail -Fили с чем-то еще) и вычерчивать коэффициенты в реальном времени (например, процент ошибок или предупреждений).

Ответы:


9

Вы ищете gnuplot, с опцией, terminalустановленной на dumb.

Не мой первый выбор, потому что у меня есть ROOT на всех моих машинах, но надежный, вездесущий режим ожидания.

CERNLIB «s PAW может также сделать вывод ASCII, хотя вы должны быть очень смелым , чтобы на самом деле использовать его , как это , кажется, предположить , что у вас есть 132 колонки фальцованном терминал.


... The development and support for CERNLIB has been discontinued. Libraries will be continued to be provided "as is"оповещение? В чем преимущество использования PAW Cernlib вместо R Sweave Latex? Никогда не слышал об этом, универсальный инструмент ?! Я использовал gnuplot до R Sweave Latex, я считаю, что последний гораздо удобнее в использовании - все в одном текстовом файле, включая изображения. Вы можете сделать это с gnuplot?

@hhh Вы заметите время, когда «PAW Чернлиба тоже мог бы подойти » , хотя люди все еще используют его, потому что есть много зрелого кода.
dmckee --- котенок экс-модератора

очень хорошо, но для чего нужна дополнительная часть? "132 column fan-fold terminal", что это? Для матричных принтеров? Так это какой-то очень старый проект ?! Извините, ваш ответ слишком запутан, "[n]ot my first choice"с gnuplot? У меня уходит время, чтобы понять, что ты имеешь в виду и пишешь. Почему Гнуплот?

Режим вывода ASCII для PAW лучше всего описан как «неуклюжий». К тому времени, когда я использовал cernlib, он был родным для X и мог писать напрямую в postscript или инкапсулированный postscript, что мы и использовали, однако его части могут проследить свои корни до кода, заложенного в начале 1960-х годов. Предполагается, что у вас есть терминал для печатных копий ; многие из них использовали формат шириной 132 символа с чередующимися светлыми и темными полосами, чтобы их было легко читать. Достаточно старые вундеркинды все смогут вспомнить вещи (вы все еще видели это даже в 1980 году).
dmckee --- котенок экс-модератора

1
set term dumbСюжет ASCII
KEV

3

Вы можете использовать R, которая может дать вам довольно красивые графики и провести большой статистический анализ ваших данных. Этот пост в блоге показывает вам способ сделать это.

Точно так же вы можете использовать gnuplot смотрите здесь и здесь


спасибо, но я не хочу использовать какой-либо графический интерфейс, ни для написания кода, ни для отображения графиков, я хочу сделать это полностью в терминале. Кроме того, я бы предпочел запустить его без необходимости sudo (для установки чего-либо).
Али

@ Али: Посмотрите на следующее сообщение в блоге: r-bloggers.com/ascii-scatterplots-in-r
Сардатрион - против злоупотребления SE

спасибо, я понятия не имел, мне нужно попробовать это, хотя я никогда не использовал R, но должно быть легко для простого случая использования mp.
Али

1

"Generic plotting tools available in the unix toolbox"это, вероятно, каждый базовый инструмент Un * x, вам нужно комбинировать инструменты для создания вещей. Я люблю сочетать латекс, R и Sweave! Термин "logs"оставляет вопрос немного открытым, но, видимо, по назначению обратите внимание на этот термин "generic". Так что ничего о предварительной обработке с AWK / SED / etc и только о заговоре в текстовых файлах. Радоваться, веселиться!

введите описание изображения здесь

$ mkdir Pictures
$ R CMD Sweave paper.Rnw 
Writing to file paper.tex
Processing code chunks with options ...
 1 : term verbatim

You can now run (pdf)latex on 'paper.tex'
$ pdflatex paper.tex 3&>/dev/null

$ evince paper.pdf 

paper.tex

$ cat paper.tex

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[T1]{fontenc}    % intended quotes

\begin{document}
\sloppy

<<echo=FALSE>>=
png('./Pictures/examples.png')
x<-1:10
y<-10:1

par(mfrow=c(2,2))
                # Demand/Supply example
plot(x,y-2, type='l', ylab='Price', xlab="Quantity")
lines(y,x+2)
lines(x,x)

title(main="Examples by HHH for R Sweave Latex")

hist(rnorm(100))        # histogram example
plot(sin(1:1E3),cos(1:1E3)) # circle example
plot(sin(1:1E3),1:1E3)      # sin example
@
\includegraphics{./Pictures/examples.png}

\end{document}

Теперь следующая загадка - доступность (предположим, что оператору нужен вывод ASCII, а не просто универсальный инструмент). Извините, у меня пока нет ответа, но я приведу ниже информацию для дальнейшего изучения.

Просто мысли вслух: выберите формат растрового изображения, такой как TIFF, а затем просто напечатайте каждый сотый столбец или что-то в этом роде, чтобы увидеть его. Извините, что размышляю, но я знаю, что TIFF является де-факто форматом растровых изображений для всех видов архивных целей - я пока не знаю точно, как обработчики OCR, такие как Tesseract, справляются с ними, но здесь проблема проста, потому что вы можете пропустить много вещей при предварительной обработке изображения - потому что мы знаем, как их генерирует R Кто-то понял, как это сделать? Или я заново изобретаю колесо? В самом простом случае выберите инструмент, который генерирует hings для ASCII, немного ограничивающий "generic".

связанные с

  1. Какие инструменты для визуализации портфолио ASCII?

Внимательно прочитайте вопрос (и комментарии, где он сделан более явным). ОП хотят отображать результаты в терминале .
dmckee --- котенок экс-модератора

@dmckee: да, но для работы требуется еще и "generic"инструмент ?! Теперь это сложный вопрос, потому что я думаю, что он выводит пробники, основанные на оптическом распознавании символов, и не уверен, что операционная система это понимает.

Под «универсальными» я подразумеваю многоцелевые инструменты, подобные awkи sedне являющиеся «конкретными», не предназначенные для конкретного варианта использования. Извините, если это сбивает с толку. в основном я хочу сделать очень простые барные графики в терминале. Это все.
Али

@ Али: перестань объяснять. Вы командуете, мы отвечаем - и лучший ответ побеждает. Мой ответ работает, кроме «Вывод ASCII». Ваш вопрос предельно ясен, но в настоящее время я не могу помочь вам в дальнейшем - не заботьтесь о людях, имеющих разные взгляды, просто расслабьтесь - кто-то рано или поздно решит это. Я ищу решение аналогичной проблемы аналогичным образом, поэтому, возможно, мы ... не уверены, нужно ли нам копаться в механизмах OCR, чтобы решить эту проблему, но я действительно думаю, что этот вопрос все еще "unsolved", будет искать это ...

1

Вы можете просто передать свой числовой вывод в простой фрагмент Perl. Например, вот тестовая программа (в bash), которая просто выводит растущие числа:

(i=0; while true; do sleep 1; echo $i; i=$(( $i + 3 )); done)

Предполагая, что меня интересует диапазон значений от 0 до 20, и у меня есть терминал шириной 80 символов, я сделаю:

[above snippet] | perl -ne '$min=0; $max=20; $w=80; use POSIX; $d=ceil(log($max)/log(10)); $w-=$d; $v=$_<$min?0:$_>$max?$max:$_; $s=$w*$v/($max-$min); $bar=join("", ("*")x$s); $bar=~s/.$/|/ if $v==$max; print sprintf("%${d}d ",$_)."$bar\n";'

 0 
 3 ***********
 6 ***********************
 9 ***********************************
12 **********************************************
15 **********************************************************
18 **********************************************************************
21 *****************************************************************************|
24 *****************************************************************************|

Нечто подобное будет работать практически на любой Linux-системе, а выходные данные и параметры легко настраиваются. Издержки по сравнению с использованием чего-то вроде gnuplot незначительны.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.