Edit:
ho appena visto che lei ha ricordato una delle tue dimensioni è una data. In tal caso, have a look at Jeff Ryan's chartSeries3d progettato per rappresentare serie temporali tridimensionali. Qui egli mostra la curva dei rendimenti nel corso del tempo:
chartSeries example http://www.quantmod.com/examples/chartSeries3d/chartSeries3d-thumb.png
risposta originale:
A quanto mi risulta, si desidera una mappa countour di essere la proiezione sul piano sotto la trama superficie 3D. Non credo che ci sia un modo semplice per fare questo oltre a creare i due grafici e quindi combinarli. È possibile find the spatial view helpful for this.
ci sono due pacchetti primaria R per la stampa 3D: rgl (oppure è possibile utilizzare il relativo pacchetto di misc3d) e scatterplot3d.
pacchetto rgl
Il RGL utilizza OpenGL per creare grafici 3D interattivi (read more on the rgl website). Ecco un esempio utilizzando la funzione surface3d
:
library(rgl)
data(volcano)
z <- 2 * volcano # Exaggerate the relief
x <- 10 * (1:nrow(z)) # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z)) # 10 meter spacing (E to W)
zlim <- range(z)
zlen <- zlim[2] - zlim[1] + 1
colorlut <- terrain.colors(zlen,alpha=0) # height color lookup table
col <- colorlut[ z-zlim[1]+1 ] # assign colors to heights for each point
open3d()
rgl.surface(x, y, z, color=col, alpha=0.75, back="lines")
Il parametro alfa rende questa superficie parzialmente trasparente. Ora hai una trama 3D interattiva di una superficie e vuoi creare una mappa di countour al di sotto. RGL consente di aggiungere più grafici a un'immagine esistente:
colorlut <- heat.colors(zlen,alpha=1) # use different colors for the contour map
col <- colorlut[ z-zlim[1]+1 ]
rgl.surface(x, y, matrix(1, nrow(z), ncol(z)),color=col, back="fill")
In questa superficie mi impostare le altezze = 1 in modo da avere un piano sotto l'altra superficie. Questo finisce per guardare come questo, e può essere ruotato con un mouse:
3D surface plot http://i45.tinypic.com/12637gy.jpg
scatterplot3d
scatterplot3d è un po 'più come le altre funzioni plottaggio in R (read the vignette). Ecco un semplice esempio:
temp <- seq(-pi, 0, length = 50)
x <- c(rep(1, 50) %*% t(cos(temp)))
y <- c(cos(temp) %*% t(sin(temp)))
z <- c(sin(temp) %*% t(sin(temp)))
scatterplot3d(x, y, z, highlight.3d=TRUE,
col.axis="blue", col.grid="lightblue",
main="scatterplot3d - 2", pch=20)
In questo caso, è necessario sovrapporre le immagini. The R-Wiki has a nice post on creating a tanslucent background image.
Grazie mille Shane. Penso che questo sia un ottimo punto di partenza.Per inciso, potresti aver notato che uno degli assi è cronologico (cioè la data). Devo fare qualche manipolazione prima di tentare di tracciare, o R (o effettivamente il pacchetto rgl), gestire correttamente le date? –
Ciao Shane, grazie mille per il tuo aiuto. Mi hai dato delle munizioni sufficienti per essere ammesso con. Se dovessi incontrare problemi più specifici, tornerò qui con una domanda più specifica. Segnerò la tua risposta come accettata. –
Mi chiedo se questo potrebbe funzionare anche con i dati del punto? Ho dati lat/long, ogni punto con un certo valore. Potrei usare questi dati anche come "heightmap"? – Stophface