Erstellen Sie eine glatte Oberfläche mit dem Daten-Gnuplot x, y, z

9

Ich habe eine Datei, die x, y, z Daten enthält. Eigentlich sind die Daten:

x = Breite y = Länge z = Tiefe

Ich möchte eine glatte Oberfläche erstellen, habe aber keine Ahnung, wie es geht. Könnte mir jemand ein paar Tipps geben?

AKTUALISIEREN

Die Daten sehen also wie in den nächsten Zeilen aus:

-62.323 19.242  58.7
-62.213 10.886  120.2
-62.329 10.797  71.9
-62.383 10.690  1.3
-60.121 11.567  24.5
-60.481 12.894  3
-62.118 10.944  69.1
-60.825 15.803  25.5
-61.792 16.227  148.3
-63.288 10.817  28.4
-59.092 14.344  3
-61.836 11.217  67.7
-61.346 14.799  191.2
-61.152 15.427  126.6
-60.959 16.035  55.8
-61.364 15.283  151.6
-62.071 11.222  109.5
-62.420 10.672  72.1
-60.267 14.009  13.1
-60.604 14.033  65.4
-60.623 10.307  42.4
-62.272 17.936  75
-60.464 13.908  40.9
-60.722 14.701  181.5
-62.125 10.911  47.1
-62.530 10.544  5.2
-60.170 12.752  71.5
-60.929 14.635  87.9
-62.279 10.936  74.3
-62.267 10.767  75.8
-60.708 10.440  36.2
-62.440 10.463  2.6
-62.477 10.217  3
-62.399 10.651  58.7

Es gibt noch mehr Punkte. Die Idee ist, die Ebene oder Oberfläche entlang der Tiefe (die dritte Spalte) zu erstellen.

Pedro
quelle
1
Was hast du bisher? Und ist die Datendatei in jeder Zeile so formatiert? Können Sie ein Beispiel zeigen? Andere Informationen, wie der Bereich der Daten, sind ebenfalls hilfreich
Schatten

Antworten:

18

Grundsätzlich zeichnen Sie Flächen mit dem splotBefehl. data_fileenthält Ihre Beispieldatenpunkte.

gnuplot> splot 'data_file'

Geben Sie hier die Bildbeschreibung ein

Da Sie eine glatte Oberfläche wünschen, müssen Sie angeben, dass Gnuplot die Daten interpolieren soll. Hier ist ein Beispiel, siehe http://www.gnuplot.info/demo/dgrid3d.html für einige andere.

gnuplot> set hidden3d
gnuplot> set dgrid3d 50,50 qnorm 2
gnuplot> splot 'data_file' with lines

Geben Sie hier die Bildbeschreibung ein

Es gibt viele Parameter, die Sie anpassen können, z. B. welche Interpolationsfunktion verwendet wird. Da es sehr schwierig ist, hier alles in einer allgemeinen Antwort zu behandeln, möchte ich empfehlen, mit der Dokumentation über splotund zu beginnen set dgrid3d.

mpy
quelle
Gibt es eine Möglichkeit, dies mit pm3d zu tun? Ist es möglich, anstelle einer Linienkontur eine glatte Oberflächenkontur mit Interpolation zu erzeugen?
V-Red
@ V-Red: Ja, das ist einfach möglich ... hast du es versucht? Bezüglich der Interpolation lesen Sie bitte den in der Antwort angegebenen Link.
Mpy
1
Ja, es funktioniert sehr gut, wenn ich <set hidden3d> durch <set pm3d interpolate 1,1> und <splot '' with lines> durch <splot '' with pm3d> ersetze
V-Red