2016-07-08 5 views
0

Ich habe ein Problem mit dem Plot mit Linien Befehl. Ich muss 360 Zeilen aus einer riesigen Datendatei zeichnen. Die Beispieldaten aus meiner EingabedateiGnuplot Problem mit Plot mit Linien Befehl

-180.00000000,-10.00000000,0.00000000,0.01000000,0.00000000 
-179.00000000,-10.00000000,0.07551000,0.01060500,0.04000000 
-178.00000000,-10.00000000,0.15102000,0.01121000,0.08000000 
-177.00000000,-10.00000000,0.22653000,0.01181400,0.12000000 
-176.00000000,-10.00000000,0.30204000,0.01241900,0.16000000 
-175.00000000,-10.00000000,0.37755000,0.01302400,0.20000000 
-174.00000000,-10.00000000,0.45306000,0.01362900,0.24000000 
-173.00000000,-10.00000000,0.52857000,0.01423400,0.28000000 
-172.00000000,-10.00000000,0.60408000,0.01483900,0.32000000 
-171.00000000,-10.00000000,0.67959000,0.01544300,0.36000000 
-170.00000000,-10.00000000,0.75510000,0.01604800,0.40000000 
-169.00000000,-10.00000000,0.73638000,0.02735300,0.38295000 
-168.00000000,-10.00000000,0.71766000,0.03865800,0.36590000 

Für den followind Code

reset 
set terminal epslatex size 13.1cm,6cm color colortext 
set output 'C:\MajCha\gnuplot\alpha_cl.tex' 
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt' 
# 
unset key 
set xrange [-10:10] 
set yrange [-3:3] 
plot for [i=-180:180] filename using (($1==i)?$2:1/0):3 
# 
unset output 
reset 

ich folgendes Diagramm bekam enter image description here

für den folgenden Code

reset 
set terminal epslatex size 13.1cm,6cm color colortext 
set output 'C:\MajCha\gnuplot\alpha_cl_betaconst.tex' 
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt' 
# 
unset key 
set xrange [-180:180] 
set yrange [-3:3] 
plot for [i=-10:10] filename using (($2==i)?$1:1/0):3 with lines 
# 
unset output 
reset 

das Ergebnis ist eine leere Figur enter image description here

Ich habe auch awk, in diesem Fall zeigt es "awk wird nicht als interner oder externer Befehl erkannt" und es springt, ohne etwas zu plotten. Ich möchte die Handlung mit Linien statt Linien.

Antwort

0

Korrigieren Sie mich, wenn ich falsch liege, haben Sie vielleicht die Bedeutung des ternären Operators verwirrt?

A?B:C bedeutet, wenn A wahr ist, sonst ist die Verwendung C. B

So

verwenden (($1==i)?$2:1/0):3, dass für die Linien bedeuten, wobei der Wert der Spalte 1 zu i Stück gleich der vallue der Spalte 2 verwenden als x- Koordinate und der Wert von Spalte 3 als y-Koordinate. Nur eine Zeile für jede Iteration (erste Zeile in der ersten Iteration, zweite Zeile in der zweiten Iteration usw.) erfüllt dieses Kriterium, so dass Sie nur einen Punkt von jeder Iteration erhalten.

(($ 2 == i)? $ 1: 1/0): 3 bedeutet, dass für Linien, in denen der Wert von Spalte 2 gleich i ist, dieser Zeilenwert in Spalte eins als x-Koordinate und der Wert von verwendet wird Spalte 3 (wieder) als y-Koordinate. Dieser Befehl könnte jedoch an dieser Datei arbeiten und Ihre Daten beurteilen. Also ich weiß nicht, was falsch ist. Vielleicht sind sie außerhalb Ihrer Reichweite. Ziehen Sie die range Spezifikationen heraus und sehen Sie, ob Sie etwas sehen. Gnuplot Shuold Autoscale.

Wenn Ihnen das alles klar war, aber Sie nur Linien zwischen den Punkten brauchen, bin ich nicht sicher, wie ich das erreichen soll.

auch Ihre letzte Sentece "Ich möchte die Handlung mit Linien statt Linien." ist vage.

Ein Tipp ist terminal qt oder terminal wxt oder terminal x11 zu verwenden, um interaktive Pop-up-Fenster Plot zu erhalten, statt epslatex, die Sie später verwenden können, wenn Sie für die Produktion bereit sind. Dann ist es einfacher zu experimentieren.