2016-04-07 9 views
0

in meinem Skript Ich versuche, zwei Sätze von Punkten zu drucken - einer von ihnen wird irgendwo in der Mitte sein und der andere wird oben auf dem gnuplot-Terminal sein. Ich verwende diese zweimal für Zyklus, es zu tun:Gnuplot - plotten verbundene Punkte aus Bash-Skript

for ((i=1;i<=LINES;i++)) 
do 
    { 
     cat <<-PLOT 
      set terminal png 
      set output "$(printf "$FMT" $i)" 
      plot [0:$LINES][$YRANGE1:$YRANGE2] '-' with lines t '' 
      PLOT 
     head -n $i "${TMPDIR}/bigdata" 
    } | gnuplot 
done 

Aber wenn ich es so machen die Punkte einfach hinter dem YRANGE2 weiter - ich möchte, dass sie von Anfang an wieder starten. Wie mache ich das ? Die Datei sieht wie folgt aus:

100.285 
100.404 
100.708 
100.199 
.... 
130.628 
130.865 
130.186 
130.659 

Auch habe ich versucht, die Zeilennummern in awk anhängen, aber dann konnte ich es nicht mit der für den Zyklus drucken Plakat haben früher - ich versucht habe appendeding using 2:1 aber nur hat nicht funktioniert. Irgendwelche Hinweise bitte?

Vielen Dank

+2

Es ist wahrscheinlich für Sie sehr klar was Sie wollen, aber wenn Sie Ihre gewünschte Ausgabe nicht veröffentlichen, würden wir nicht wissen. – karakfa

+1

Ist das Problem, dass Sie nicht herausfinden können, wie Sie die gewünschten Daten erzeugen oder dass Sie das generieren, was Sie denken, dass Sie es brauchen, aber gnuplot interpretiert es nicht so, wie Sie es erwarten? Wenn ersteres, nimm Gnuplot aus der Gleichung heraus und poste einfach deine Beispiel-Eingabe/Ausgabe, wo die Ausgabe die Eingabe für gnuplot wäre. Wenn letzterer dann die von Ihnen bereitgestellte Eingabe an gnuplot sendet, kann Ihnen jemand helfen. –

+1

übrigens solltest du wirklich http://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice lesen, damit du von allem wegkommen kannst dieser Shell-Loop-Unsinn. –

Antwort

-1

dankt allen für ihre Kommentare, die Lösung in der Tat war awk zu verwenden, zweite Spalte hinzufügen und dann die so für Zyklus bearbeiten:

for ((i=1;i<=LINES;i++)) 
do 
    { 
     cat <<-PLOT 
      set terminal png 
      set output "$(printf "$FMT" $i)" 
      set xrange [0:$LINES] 
      set yrange [$YRANGE1:$YRANGE2] 
      plot '-' using 2:1 with lines t '' 
      PLOT 
     head -n $i "${TMPDIR}/bigdata" 
    } | gnuplot 
done 
Verwandte Themen