Gibt es (textbasierte) Plot-Tools in der Unix-Toolbox?


9

Ich habe mich gefragt, ob in der Unix-Toolbox generische Plot-Tools verfügbar sind.
Mit Plotten meine ich einfache Balken oder Dinge, die Sie in vielen fluchbasierten Dienstprogrammen sehen.
Und mit Unix-Toolbox meine ich Dinge, in die Sie Daten mithilfe von Standard-Unix-Konventionen einleiten können.

Ich muss etwas in Protokolldateien zählen (mit denen ich überwache tail -Foder so) und Live-Verhältnisse von Dingen (wie prozentuale Fehler oder Warnungen) zeichnen.

Antworten:


9

Sie suchen gnuplotmit der Option terminalauf dumb.

Nicht meine erste Wahl, weil ich ROOT auf allen meinen Maschinen habe, aber einen zuverlässigen, allgegenwärtigen Standby.

Cernlib ‚s PAW könnte auch ASCII - Ausgabe tun, obwohl Sie ziemlich mutig sein müßten , um es tatsächlich zu verwenden , da es , dass Sie ein 132 - Säule Fan-fach Klemme müssen davon ausgehen , erscheint.


... The development and support for CERNLIB has been discontinued. Libraries will be continued to be provided "as is"alarmierend? Was ist der Vorteil der Verwendung von Cernlibs PAW anstelle von R Sweave Latex? Noch nie von diesem generischen Tool gehört?! Ich habe Gnuplot vor R Sweave Latex verwendet. Letzteres ist für mich viel bequemer - alles in einer Textdatei, einschließlich Bilder. Kannst du das mit Gnuplot machen?

@hhh Sie werden bemerken , die angespannte von „cernlib Pranke könnte auch tun“ , wenn die Menschen es immer noch verwenden , weil es sehr viel reifen Code ist da draußen.
dmckee --- Ex-Moderator Kätzchen

sehr gut, aber wofür ist der zusätzliche Teil? "132 column fan-fold terminal", Was ist es? Für Nadeldrucker? Das ist also ein sehr altes Projekt?! Tut mir leid, dass Ihre Antwort "[n]ot my first choice"mit Gnuplot zu altersbedingt ist ? Ich brauche Zeit, um zu verstehen, was Sie meinen und schreiben. Warum Gnuplot?

Der ASCII-Ausgabemodus für PAW wurde am besten als "klobig" beschrieben. Zu der Zeit, als ich cernlib verwendete, war es auf X nativ und konnte direkt in Postscript oder gekapseltes Postscript schreiben, was wir verwendet haben. Teile davon können jedoch ihre Wurzeln auf Code zurückführen, der in den frühen 1960er Jahren festgelegt wurde. Die Annahme scheint gewesen zu sein, dass Sie ein Hardcopy-Terminal haben ; Viele von ihnen verwendeten ein 132 Zeichen breites Format mit abwechselnden hellen und dunklen Bändern, um sie leicht lesbar zu machen. Alt genug Geeks werden sich alle an das Zeug erinnern können (Sie haben es noch gelegentlich bis 1980 gesehen).
dmckee --- Ex-Moderator Kätzchen

1
set term dumbzu zeichnen ascii
kev

3

Sie können R verwenden, mit dem Sie einige hübsche Grafiken erstellen und viele statistische Analysen Ihrer Daten durchführen können. Dieser Blog-Beitrag zeigt Ihnen einen Weg, dies zu tun.

Ebenso können Sie gnuplot verwenden, siehe hier und hier


danke, aber ich möchte keine GUI verwenden, weder zum Schreiben des Codes noch zum Anzeigen der Diagramme, ich möchte dies vollständig im Terminal tun. Außerdem würde ich es lieber ohne sudo ausführen können (für die Installation von irgendetwas).
Ali

@Ali: Schauen Sie sich den folgenden Blog-Beitrag an: r-bloggers.com/ascii-scatterplots-in-r
Sardathrion - gegen SE-Missbrauch

Danke, ich hatte keine Ahnung, ich muss es versuchen, obwohl ich nie R verwendet habe, aber für mp einfachen Anwendungsfall einfach sein sollte.
Ali

1

"Generic plotting tools available in the unix toolbox"Ist wahrscheinlich jedes grundlegende Un * x-Werkzeug, müssen Sie Werkzeuge kombinieren, um Dinge zu erstellen. Ich liebe es, Latex, R und Sweave zu kombinieren! Der Begriff "logs"lässt die Frage etwas offen, aber anscheinend absichtlich, beachten Sie den Begriff "generic". Also nichts über die Vorverarbeitung mit AWK / SED / etc und nur über das Plotten in Textdateien. Habe Spaß!

Geben Sie hier die Bildbeschreibung ein

$ 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}

Das nächste Rätsel ist nun die Barrierefreiheit (vorausgesetzt, die Operation möchte eine ASCII-Ausgabe, nicht nur ein generisches Tool). Entschuldigung, ich habe noch keine Antwort darauf, aber ich werde die folgenden Informationen zur weiteren Erkundung auflisten.

Denken Sie nur laut nach: Wählen Sie ein Rasterbildformat wie TIFF und drucken Sie dann jede 100. Spalte oder ähnliches aus, um es zu sehen. Tut mir leid, ich spekuliere nur, aber ich weiß, dass TIFF ein De-facto-Rasterbildformat für alle Arten von Archivierungszwecken ist. Ich weiß noch nicht genau, wie die OCR-Engines wie Tesseract damit umgehen, aber hier ist das Problem einfach, weil Sie es können Überspringen Sie eine Menge Dinge in der Vorverarbeitung des Bildes - weil wir wissen, wie R sie erzeugt. Jemand hat eine Idee, wie das geht? Oder erfinde ich das Rad neu? Wählen Sie im einfachsten Fall ein Tool aus, das ASCII-Hings generiert, was etwas einschränkend sein muss "generic".

verbunden

  1. Welche Tools für die ASCII-Portfolio-Visualisierung?

Lesen Sie die Frage sorgfältig durch (und die Kommentare, in denen sie expliziter gemacht wird). Das OP möchte die Ergebnisse im Terminal anzeigen .
dmckee --- Ex-Moderator Kätzchen

@dmckee: ja aber op benötigt auch "generic"tool?! Nun, das ist schwierig, weil ich denke, dass es auf OCR-basierte Probleme folgt, nicht sicher, ob op es realisiert.

Mit "generisch" meine ich Mehrzweckwerkzeuge, Dinge wie awkund seddie nicht "spezifisch" sind und nicht für einen bestimmten Anwendungsfall entwickelt wurden. Entschuldigung, wenn es verwirrend ist. Grundsätzlich möchte ich sehr einfache Balkendiagramme im Terminal erstellen. Das ist alles.
Ali

@Ali: Hör auf zu erklären. Sie befehlen, wir antworten - und die beste Antwort gewinnt. Meine Antwort funktioniert außer "ASCII-Ausgabe". Ihre Frage ist glasklar, aber derzeit kann ich Ihnen nicht weiterhelfen - kümmern Sie sich nicht um Menschen mit unterschiedlichen Ansichten, entspannen Sie sich einfach - jemand wird dies früher oder später lösen. Ich suche ebenfalls nach einer Lösung für ein ähnliches Problem, also werden wir vielleicht ... nicht sicher sein, ob wir uns mit OCR-Engines "unsolved"

1

Sie können Ihre numerische Ausgabe einfach an ein einfaches Perl-Snippet weiterleiten. Hier ist zum Beispiel ein Testprogramm (in Bash), das nur steigende Zahlen ausgibt:

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

Angenommen, ich interessiere mich für einen Wertebereich von 0 bis 20 und habe ein Terminal mit einer Breite von 80 Zeichen, dann mache ich Folgendes:

[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 *****************************************************************************|

So etwas funktioniert auf nahezu jedem Linux-System, und die Ausgabe und die Parameter lassen sich leicht anpassen. Der Aufwand im Vergleich zur Verwendung von so etwas wie Gnuplot ist winzig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.