UNIXツールボックスの(テキストベースの)プロットツールはありますか?


9

UNIXツールボックスで利用できる汎用のプロットツールがあるかどうか疑問に思っていましたか?
プロットとは、単純なバーや、多くのcursesベースのユーティリティで表示されるものを意味します。
そして、UNIXツールボックスとは、標準のUNIX規則を使用してデータをそれらにパイプできることを意味します。

ログファイル内の何か(tail -Fまたは何かで監視しているもの)を数え、(エラーや警告の割合などの)ライブの比率をプロットする必要があります。

回答:


9

gnuplotオプションをにterminal設定して、を探していますdumb

すべてのマシンにROOTがあるため、最初の選択ではありませんが、信頼性の高い、ユビキタススタンバイです。

CernlibPAWもASCII出力を実行できますが、132カラムのファンフォールドターミナルがあると想定しているため、実際に使用するにはかなり勇気が必要です。


... The development and support for CERNLIB has been discontinued. Libraries will be continued to be provided "as is"、警告しますか?たとえば、R Sweave Latexの代わりにCernlibのPAWを使用する利点は何ですか?これを聞いたことがない、汎用的なツール!R Sweave Latexの前にgnuplotを使用しましたが、後者を使用する方がはるかに便利です。画像を含め、すべて1つのテキストファイルに収めます。gnuplotでこれを行うことができますか?

@hhhあなたは緊張の注意ます「CERNLIBのPAWができもやる」とそこに成熟したコードの大きな取引がありますので、人々はまだそれを使用しても、。
dmckee ---元モデレーターの子猫2011

結構ですが、追加された部分は何ですか?"132 column fan-fold terminal"、 それは何ですか?ドットマトリックスプリンターの場合 これは非常に古いプロジェクトですか?申し訳ありませんが、答えは"[n]ot my first choice"gnuplotで年齢が難読化されすぎていますか?あなたが何を意味し、何を書いているのかを理解するのに時間がかかります。なぜgnuplotですか?

PAWのASCII出力モードは、「不格好」と最もよく説明されていました。私がcernlibを使用していた頃は、Xでネイティブであり、ポストスクリプトまたはカプセル化されたポストスクリプトに直接書き込むことができましたが、その一部は、1960年代の初めに敷設されたコードにルーツをたどることができます。ハードコピー端末を持っていることが前提になっているようです。それらの多くは、読みやすくするために明るいバンドと暗いバンドを交互に使用して、132文字のワイドフォーマットを使用していました。十分に古いオタクは、すべてそのことを思い出すことができます(まだ1980年に時折見たことがあります)。
dmckee ---元モデレーターの子猫

1
set term dumbasciiをプロットする
kev '19

3

Rを使用すると、かなり優れたグラフを作成し、データに対して多数の統計分析を行うことができます。このブログ投稿は、その方法を示しています。

同様に、gnuplot see herehereを使用できます。


おかげで、私はGUIを使用したくありません。コードの記述やプロットの表示ではなく、完全にターミナルで実行したいと考えています。さらに、sudoを実行することなく(何をインストールする場合でも)実行できるようにしたいと思っています。
アリ

@Ali:次のブログ記事を見てみましょう。r-bloggers.com/ascii-scatterplots-in-r
Sardathrion - SEに対する虐待は、

ありがとう、私は知らなかった、私はこれを試してみる必要があるが、Rを使ったことはないが、mpの単純な使用例では簡単なはずだ。
Ali

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}

次のパズルはアクセシビリティです(opが汎用ツールだけでなく、ASCII出力を望んでいると仮定します)。申し訳ありませんが、まだ回答はありませんが、詳細を調べるために以下の情報をリストします。

声に出して考えるだけです。TIFFなどのラスターイメージ形式を選択し、100列ごとに印刷するか、そのようなものを表示します。推測するだけで申し訳ありませんが、TIFFはあらゆる種類のアーカイブ目的のための事実上のラスターイメージ形式であることを知っています-TesseractなどのOCRエンジンがそれらをどのように処理するかはまだ正確にはわかりませんが、ここでは問題が簡単に解決できます画像の前処理で多くのものをスキップします-Rがそれらをどのように生成するかを知っているからです。誰かがこれをどのように行うのか考えましたか?または私は車輪を再発明していますか?最も簡単な方法は、ASCIIへのヒンジを生成するツールを選択すること"generic"です。

関連した

  1. ASCIIポートフォリオの視覚化のためのツールはどれですか?

質問を注意深く読んでください(より明確にされているコメントも)。OPは結果を端末に表示したい。
dmckee ---元モデレーターの子猫

@dmckee:はい、ただし操作には"generic"ツールも必要ですか?これは難しい問題です。OCRがそれを実現するかどうかはわかりませんが、OCRベースの確率を推測していると思います。

「ジェネリック」と私は物事のように、多目的なツールを意味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のようなものを使用する場合に比べてオーバーヘッドはごくわずかです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.