Ich bin kürzlich auf ein Beispiel gestoßen, wo Gnuplot (zumindest für mich) ein unerwartetes Ergebnis produziert, also habe ich mich gefragt, ob es tatsächlich das gewünschte Verhalten ist. Die Einrichtung ist folgende:Splot-Verhalten beim Plotten mit Linien
set terminal pngcairo
set output plot3d?"plot1.png":"plot0.png"
unset key
set xtics nomirror
set ytics nomirror
set xr [0.5:2.5]
set yr [-0.5:4.5]
set multiplot layout 1,2
$data0 << EOD
1 2 1
2 4 1
1 3 1
1 0 1
2 2 1
1 1 1
EOD
$data1 << EOD
1 2 1
2 4 1
1 3 1
1 0 1
2 2 1
1 1 1
EOD
if(plot3d){
set view map
splot $data0 w lp, \
'' u 1:2:3:(sprintf("%d", $0)) w labels offset char 0, char -0.5
splot $data1 w lp, \
'' u 1:2:3:(sprintf("%d", $0)) w labels offset char 0, char -0.5
}else{
plot $data0 w lp, \
'' u 1:2:(sprintf("%d", $0)) w labels offset char 0, char -0.5
plot $data1 w lp, \
'' u 1:2:(sprintf("%d", $0)) w labels offset char 0, char -0.5
}
Die beiden Datenblöcke unterscheiden sich nur in der Leerraum, $data0
hat zwei Leerzeilen, während $data1
nur eine. Mit plot3d=1
erzeugt das Script (5,0 Patchlevel 6)
Interessanterweise auch Nummern 1 und 4 in dem Datenblock $data1
verbunden sind. Diese Kante scheint zu verschwinden, wenn die leere Zeile auskommentiert ist. Abschweifend plotten (plot3d=0
) ergibt sich ein erwartetes Ergebnis:
ich wahrscheinlich bin fehlt etwas offensichtlich, obwohl die Dokumentation, dass zu erklären, scheint (vielleicht ist es irgendwie durch splot außer Kraft gesetzt):
Einzelne leere Aufzeichnungen benennen Diskontinuitäten in einem
plot
; Keine Linie verbindet Punkte, die durch leere Datensätze getrennt sind (wenn sie mit einem Linienstil gezeichnet werden).
danke für die gründliche erklärung ... :) meine frage wurde von jemandem vor kurzem [fragend] (https://stackoverflow.com/q/44055951/5351549) über seltsame konturen in einem 3d-plot, er/sie zeichnete die Konturen aus einer Datei (zuvor mit 'table' erzeugt) und das Ergebnis war ziemlich seltsam - der Grund schien genau zu sein, dass einzelne Konturen in der generierten Datei nur mit einer einzigen Leerzeile abgegrenzt waren ... – ewcz