Unterschiede zwischen den Revisionen 2 und 3
Revision 2 vom 2005-02-03 03:34:07
Größe: 8231
Autor: anonym
Kommentar:
Revision 3 vom 2006-01-06 22:47:03
Größe: 8198
Autor: anonym
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 107: Zeile 107:
`set terminal postscript eps color`
`
set yrange [1:4]`
`
set ytics 1,0.25,4`
`
set format y "%4.2f"`
`
set grid`
`
set xlabel "TIME [us]"`
`
set ylabel "VOLTAGE [V]"`
`
set nokey`
`
set size square`
`
set title "RESPONSE TIME FOR +0,1V STEP"`
`
set output "F1.ps"`
`plot <nowiki>
"/tikal/public/RUNS/Silimann6/Messdaten/response_time/Rohdaten/importierbares_format/F1/D01.CSV" every ::900::6900 using ($0/1000):1 smooth unique</nowiki>`
{{{
set terminal postscript eps color
set yrange [1:4]
set ytics 1,0.25,4
set format y "%4.2f"
set grid
set xlabel "TIME [us]"
set ylabel "VOLTAGE [V]"
set nokey
set size square
set title "RESPONSE TIME FOR +0,1V STEP"
set output "F1.ps"
plot
"/tikal/public/RUNS/Silimann6/Messdaten/response_time/Rohdaten/importierbares_format/F1/D01.CSV" every ::900::6900 using ($0/1000):1 smooth unique
}}}
Zeile 141: Zeile 143:

Benutzung von <nowiki>GnuPlot</nowiki>

detailliert ist alles nachzulesen im [ftp://ftp.gnuplot.info/pub/gnuplot/gnuplot.pdf.gz gnuplot-Handbuch] (gzipped)

alles in Kürze findest Du hier: http://www.duke.edu/~hpgavin/gnuplot.html

kompliziertere Tricks gibts bei: http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

die wichtigsten Befehle im Überblick

mit gnuplot startest Du den interaktiven Modus - alles laesst sich aber natuerlich auch per Skript reingeben (gnuplot name_des_skripts.plt)

[einen großen Teil der folgenden Auflistung habe ich http://ieee.uow.edu.au/documents/gnuplot/gnuplot entnommen ...]

  • set xrange [-5:5]

  • set yrange [-2:4]

  • set grid / set nogrid - die Rasterung

  • set key / set nokey - die Legende

  • set autoscale ueberschreibt alle xrange- und yrange-Festlegungen

  • set size {{no}square | ratio <r> | noratio} {<xscale>,<yscale>}

  • set output "filename" - aufeinanderfolgende Plots landen in derselben Datei, bis ein anderer terminal ausgewählt wird

  • help

  • exit

  • set term TYPE legt die Ausgabe fest:

    • dutzende Formate: postscript, png, x11, windows, latex, corel, fig, ...
    • die komplette Liste siehst Du mit set terminal

  • load <gnuplotfile> - laed eine Datei mit gnuplot Befehlen & fuehrt diese aus

der plot-Befehl

  • der erste Parameter ist eine Funktion oder ein Dateiname (in Anführungsstrichen)
    • ein leerer Dateiname (also nur die Anfuehrungsstriche) entsprechen der letzten benutzten Datei
  • danch kann Folgendes erscheinen:
    • index

      • es gibt diese drei Varianten, um "Zeilen" aus einer Datendatei auszuwählen:
        • N - nur den n-ten Datensatz
        • N:M - alle Datensätze von n bis m
        • N:P:M - von n ausgehend jeden p-ten Datensatz bis m
    • every

      • Syntax: <nowiki>PunktIncrement:BlockIncrement:StartPunkt:StartBlock:EndPunkt:EndBlock</nowiki>

      • jedes einzelne davon kann auch wegfallen - dann muessen fuehrende : aber stehen bleiben (abschliessende : dagegen muessen weggelassen werden)

      • Blöcke werden in der Datendatei durch Leerzeilen getrennt
      • innerhalb jedes Blockes können (in Abständen) also Punkte ausgewählt werden
    • smooth

      • Werte: unique, csplines, acsplines, bezier oder sbezier
      • unique ersetzt alle Punkte, die an derselben x-Stelle dargestellt werden würden durch einen Punkt mit gemitteltem y-Wert

      • die Anderen berechnen die jeweilige Kurve zwischen den Endpunkten
      • in jedem Fall werden die Punkte nicht mehr einzeln dargestellt, sondern verbunden
    • using

      • dies ist der gebräuchlichste Parameter
      • X:Y bedeutet, dass Spalte Y gegen Spalte X dargestellt werden soll

      • die Zählung der Spalten beginnt hier mit Eins
      • eine Null als Spaltennummer ergibt die Zeilennummer jedes Datensatzes
      • dabei können auch Berechnungen verwendet werden:
        • 0:2 bzw. :2 - Spalte zwei wird über der Datensatz-Nummer aufgetragen

        • 1:($2+$3) - die Summe von Spalte 2 und 3 wird gegen Spalte 1 dargestellt

        • 1:($3>10 ? $2 : 1/0) - falls der Wert in Spalte 3 größer als 10 ist, wird Spalte 2 ausgegeben, ansonsten wird der Punkt ignoriert (wegen Division durch Null)

        • ($0/1000):$2 - die Datensatz-Nummern werden um den Faktor 1000 verkleinert

      • die Werte werden über die C-Funktion scanf eingelesen - dazu können Parameter in Anführungsstrichen übergeben werden

    • t

      • anschliessend folgt die Beschriftung der Datenreihe fuer die Legende in Anfuehrungsstrichen
  • mehrere Kurven in den selben Graphen bekommst Du folgendermassen:

plot "data/input1.csv" using 0:1 ,\\

     "" using 0:2 ,\\

     "data/input2.csv" using 0:1

  • die Reihenfolge der plot-Parameter ist relevant: "index, every, using, smooth" - die Anderen musst Du selbst ausprobieren ...

Achsenformatierung

  • mit set xtics laesst verschiedene Varianten zu:

    • X - in Schritten von X

    • X,Y - ab X in Schritten von Y (bis unendlich)

    • X,Y,Z - ab X in Schritten von Y bis Z

    • (1,2,4,8,16,32) - die gegebenen Stellen beschriften

    • ("text_fuer_wert_1" 1, "text_fuer_wert_2" 2, "text_fuer_wert_3" 3) - Texte speziellen Werten zuordnen

    • set xtics rotate ???

  • ansonsten:
    • set logscale x

    • set format x "<format_string>"

      • auch mit single-quote, um ein paar Ersetzungen zu unterdrücken
      • Formatbeispiele:
        • %f - Fließkomma (z.B.: %+-8.2f -> "+123.00 ")

        • %e / %E - exponential

        • %x / %X - hexadezimal

        • %o / %O - oktal

        • %T - Potenz zur Basis 10

        • %S - wissenschaftliche Potenz

        • %P - Vielfaches von Pi

        • ansonsten: siehe [ftp://ftp.gnuplot.info/pub/gnuplot/gnuplot.pdf.gz gnuplot-Handbuch], Kapitel 34.16 - Format

Beschriftungen (labels)

Syntax: set label {<tag>} {"<label-text>"} {at <position>} {<justification>} {{no}rotate} {font "<name><,size>"} set nolabel {<tag>}

tag

Zahl, die das Label identifiziert (fuer nachträgliche <nowiki>Änderung/Löschung</nowiki>); kann weggelassen werden

label-text

für Zeilenumbrüche, wie üblich, "\n" (oder "\\" für tex u.ä.)

position

zwei- oder dreimensionale Koordinaten, eventuell mit dem Präfix first, second, graph oder screen

justification

left, right oder center

Beispiele

response-time beim Silimann 6

set terminal postscript eps color
set yrange [1:4]
set ytics 1,0.25,4
set format y "%4.2f"
set grid
set xlabel "TIME [us]"
set ylabel "VOLTAGE [V]"
set nokey
set size square
set title "RESPONSE TIME FOR +0,1V STEP"
set output "F1.ps"
plot "/tikal/public/RUNS/Silimann6/Messdaten/response_time/Rohdaten/importierbares_format/F1/D01.CSV" every ::900::6900 using ($0/1000):1 smooth unique

kleine Sachen

durchgezogene geglättete Linien mit manueller Legenden-Bennenung
plot "scanpfad.dat" using 3:($4*1000) smooth csplines t "analog-positiv" w lines
die Legende außerhalb des Graphen in eine Box stecken
set key outside box
die Achsenrichtung umkehren (weiterhin automatische Auflösung)
set xrange [*:*] reverse
die Achsenbeschriftung um 90 Grad drehen
set xtics rotate ("Eingangspegel-Aenderung" 0, "Scanpfad-Aktivierung" 1, "Dauer-Refresh" 2, "unbelastet" 3)
ein mehrzeilige Beschriftung

unix-gemaess durch Einfügen eines Zeilenumbruchs \n oder \\ fuer tex o.ä.

encapsulated postscript

set terminal postscript eps color (sogar mit Farbe)

Ausgabe in mehreren Formaten

nach dem Plot-Befehl eine neue Ausgabedatei (set output) und das Format (set terminal) festlegen, anschließend: replot

Funktionen

plot sin(x)*x - alle weiteren Funtionen unter help functions

png-Bildformat
folgende Parameter stehen zur Verfügung: {small | medium | large} {{no}transparent} {monochrome | gray | color}; Standard ist kleine Schrift, keine Transparenz und viel Farbe
das Aussehen einzelner Bildpunkte veraendern
set data style [lines|...]
Punkte auslassen

plot "datei.csv" every 10 using 0:1

Sonderzeichen

durch das Uebliche \NNN, wobei NNN eine Oktal-Zahl darstellt - die dazugehoerigen Zeichen lassen sich auf der Konsole beispielsweise durch folgende Eingabe anzeigen: i=0; while [ $i -lt 8 ]; do j=0; while [ $j -lt 8 ]; do k=0; while [ $k -lt 8 ]; do echo -e "$i$j$k\t\\$i$j$k"; k=$(($k+1)); done; j=$(($j+1)); done; i=$(($i+1)); done|less - nun einfach per Schraegstrich (slash) nach dem geuenschten Zeichen suchen; z.B. entspricht das Grad-Zeichen (von "Grad Celsius") dem Code \260

aktualisierte Grafik

;Es soll alle zehn Sekunden eine Logdatei ausgelesen und die Grafik dazu aktualisiert werden.

scriptdatei erstellen
  • plot "/var/log/temperatures1", "/var/log/temperatures2"
  • pause 10
  • reread
    dann starten
    $gnuplot scriptdatei
  • GnuPlotHowTo (zuletzt geändert am 2012-06-13 21:26:20 durch anonym)


    Creative Commons Lizenzvertrag
    This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.