2013-05-03 14 views
24

Ich habe ein 3D-Diagramm mit RGL. Ich möchte identische Diagramme mit Farbe erstellen, um die Verteilung einer Variablen hervorzuheben. Dazu möchte ich identische Plots haben, wie finde ich die Orientierung eines Plots?Speichern Sie die Ausrichtung eines RGL plot3d() Plot

Sobald ich eine vorläufige Handlung mache, bewege ich sie herum, um einen schönen Betrachtungswinkel zu finden, und ich möchte diesen Winkel speichern und ihn in zukünftige Plot-Skripte integrieren. Hat jemand einen Vorschlag, wie man das macht?

library(rgl) 
plot3d(iris) 
#play with the plot to find a good angle 
#save the angle for future plots 
+9

Versuch 'pp <- par3d (no.readonly = TRUE); ...; par3d (pp) ' –

+1

auch - gibt es eine gute Möglichkeit, es zu kodieren - ich, e, speichern' pp' als eine Variable, die ich in ein zukünftiges Skript integrieren kann, ohne neu zu berechnen? – zach

+0

Überprüfen Sie auch '? Rgl.viewpoint' – James

Antwort

21

Ben Kommentar im Grunde beantwortet Ihre Frage; dies gilt nur expand.dots zu dem, was er schrieb;)

## In an inital session: 

library(rgl) 
plot3d(iris) 

## Now move the image around to an orientation you like 

## Save RGL parameters to a list object 
pp <- par3d(no.readonly=TRUE) 

## Save the list to a text file 
dput(pp, file="irisView.R", control = "all") 

....... 

## Then, in a later session, to recreate the plot just as you had it: 

library(rgl) 
pp <- dget("irisView.R") 
plot3d(iris) 
par3d(pp) 
+1

Es ist sicherer, 'control =" all "' in der 'dput()' Zeile zu verwenden, da dies alle Informationen speichert und sicherstellt, dass das Ergebnis von dget funktioniert. –

+0

Ohne 'control =" all "' Ich habe einen Fehler bekommen * falsche Anzahl von Dimensionen *, weil dget() die userMatrix fälschlicherweise zu einer Liste reduziert hat. –

+0

@AssadEbrahim - Danke, dass Sie das bemerkt haben! Ich habe gerade die Antwort bearbeitet, um Ihre Verbesserungsvorschläge einzuarbeiten. –

Verwandte Themen