Veröffentlicht am :
Berichterstattung INTERNE_ERSTELLUNG

Überlagerung zweier 3D-Oberflächen mit PROC G3D und GREPLAY

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript demonstriert eine fortgeschrittene SAS©/Graph-Technik. Es beginnt mit der Erstellung eines Rohdatensatzes (`raw_data`) über einen DATA-Schritt mit integrierten Daten (Datalines). Anschließend wird PROC G3GRID verwendet, um diese Daten zu glätten und ein interpoliertes Gitter zu erstellen. Die geglätteten Daten werden dann modifiziert, um zwei verschiedene Oberflächen zu simulieren. Das Skript konfiguriert die grafische Umgebung für eine HTML-Ausgabe und generiert zwei separate 3D-Grafiken mit PROC G3D, wobei diese in einem Grafikkatalog gespeichert werden, ohne sie sofort anzuzeigen. Die Besonderheit besteht darin, mit der Textfarbe (weiß, dann schwarz) zu spielen, um einen Unschärfeeffekt bei der Überlagerung zu vermeiden. Schließlich wird PROC GREPLAY verwendet, um diese beiden Grafiken zu einem einzigen Bild zu kombinieren, das dann in die HTML-Ausgabedatei gerendert wird.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Die Ausgangsdaten werden direkt im Skript über einen DATA STEP-Block und die Anweisung 'datalines' erstellt. Alle nachfolgenden Daten stammen aus dieser internen Quelle.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt die Tabelle 'raw_data', die die X-, Y- und Z-Koordinaten enthält. Die Daten werden mithilfe der Anweisung 'datalines' direkt in den Code integriert.
Kopiert!
1DATA raw_data;
2INPUT X Y Z;
3DATALINES;
4-1.0 -1.0 15.5
5 -.5 -1.0 18.6
6 .0 -1.0 19.6
7 .5 -1.0 18.5
8 1.0 -1.0 15.8
9-1.0 -.5 10.9
10 -.5 -.5 14.8
11 .0 -.5 16.5
12 .5 -.5 14.9
13 1.0 -.5 10.9
14-1.0 .0 9.6
15 -.5 .0 14.0
16 .0 .0 15.7
17 .5 .0 13.9
18 1.0 .0 9.5
19-1.0 .5 11.2
20 -.5 .5 14.8
21 .0 .5 16.5
22 .5 .5 14.9
23 1.0 .5 11.1
24-1.0 1.0 15.8
25 -.5 1.0 18.6
26 .0 1.0 19.5
27 .5 1.0 18.5
28 1.0 1.0 15.8
29;
30RUN;
2 Codeblock
PROC G3GRID Data
Erklärung :
Die Prozedur G3GRID wird zur Interpolation verwendet. Sie nimmt die Rohdaten ('raw_data') und generiert eine neue Tabelle 'smoothed' mit einem feineren Punktegitter. Die Option 'spline' mit 'smooth=.05' wendet eine kubische Spline-Glättung an, um eine reguläre Oberfläche zu erhalten.
Kopiert!
1PROC G3GRID DATA=raw_data out=smoothed;
2grid y*x=z / spline smooth=.05
3 axis1=-1 to 1 BY .1
4 axis2=-1 to 1 BY .1;
5RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP modifiziert die Tabelle 'smoothed', um zwei unterschiedliche Oberflächen zu simulieren. Er erstellt zwei neue Variablen 'z1' und 'z2', indem er den ursprünglichen Wert von 'z' um -8 bzw. +8 verschiebt.
Kopiert!
1DATA smoothed; SET smoothed;
2label z1='Z' z2='Z';
3z1=z-8;
4z2=z+8;
5RUN;
4 Codeblock
ODS / GOPTIONS
Erklärung :
Dieser Block konfiguriert die Ausgabeumgebung. 'goptions' definiert die Grafikparameter (Gerät, Größe). ODS (Output Delivery System) ist so konfiguriert, dass die Standard-Listing-Ausgabe geschlossen und die Ausgabe in eine HTML-Datei umgeleitet wird. Die Option 'nodisplay' verhindert die sofortige Anzeige der Grafiken.
Kopiert!
1%let name=example06;
2filename odsout '.';
3 
4goptions device=png;
5goptions xpixels=600 ypixels=600;
6goptions noborder;
7
8ODS LISTING CLOSE;
9ODS HTML path=odsout body="&name..htm" (title="SAS/Graph g3d plots") style=minimal;
10 
11goptions gunit=pct htitle=4.0 htext=2.5 ftitle="albany amt/bo" ftext="albany amt";
12goptions nodisplay;
5 Codeblock
PROC G3D
Erklärung :
Die Prozedur G3D generiert die erste 3D-Grafik basierend auf der Variablen 'z1'. 'name="plot1"' speichert die Grafik zur späteren Verwendung im Arbeitskatalog. Der Text wird weiß definiert, um die Überlagerung vorzubereiten und visuelle Artefakte zu vermeiden.
Kopiert!
1goptions ctext=white;
2 
3title ls=1.5 "Overlay Multiple G3D Surfaces, using Greplay";
4PROC G3D DATA=smoothed;
5 plot y*x=z1 /
6 grid zmin=0 zmax=30 xticknum=4 tilt=80
7 ctop=purple cbottom=cx00ff00 des='' name="plot1";
8RUN;
6 Codeblock
PROC G3D
Erklärung :
Die Prozedur G3D generiert die zweite 3D-Grafik basierend auf der Variablen 'z2', unter Verwendung derselben Achsen- und Winkelparameter wie die erste, um eine perfekte Ausrichtung zu gewährleisten. Die Grafik wird unter dem Namen 'plot2' gespeichert und der Text wird schwarz definiert.
Kopiert!
1goptions ctext=black;
2 
3PROC G3D DATA=smoothed;
4 plot y*x=z2 /
5 grid zmin=0 zmax=30 xticknum=4 tilt=80
6 ctop=blue cbottom=red des='' name="plot2";
7RUN;
7 Codeblock
PROC GREPLAY
Erklärung :
Die Option 'goptions display' wird reaktiviert. Die Prozedur GREPLAY überlagert die beiden Grafiken ('plot1' und 'plot2') in einem einzigen, durch das Modell 'WHOLE' definierten Bereich. Die Anweisung 'treplay' führt diese Überlagerung aus und erstellt die endgültige zusammengesetzte Grafik.
Kopiert!
1goptions display;
2 
3PROC GREPLAY tc=tempcat nofs igout=work.gseg;
4tdef WHOLE des="my template"
5 1/llx=0 lly=0
6 ulx=0 uly=100
7 urx=100 ury=100
8 lrx=100 lry=0
9 ;
10template = whole;
11treplay 1:plot1 1:plot2 des='' name="&name";
12RUN;
13QUIT;
8 Codeblock
ODS
Erklärung :
Dieser Block schließt den Prozess ab, indem die HTML-Ausgabedatei geschlossen und das Standard-ODS-LISTING-Ziel reaktiviert wird.
Kopiert!
1ODS HTML CLOSE;
2ODS LISTING;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.