Kontur harita yerleşimi ile 3D yüzey çizim çizme, R kullanarak
R. kullanarak çizmek istiyorum 3-demet veri kümesi (X,Y,Z noktaları) var
İstiyorum oluşturmak için bir yüzey çizim verileri, ve üst üste bir kontur harita üzerinde yüzey arsa, böylece oluşturmak izlenim kontur haritası olan "gölge" ya da projeksiyon yüzeyi arsa. Kontur harita yüzey arsa altında görünür.
Benim veri kümesi biraz bu gibi görünüyor:
Axis | Data Type
-------------------
X | Date value
Y | Float value
Z | Float value
Bunu nasıl başarabilir?
CEVAP
Düzenleme:
Ben sadece senin boyutları bir tarih olduğunu belirttiği gördü. 3 boyutlu zaman serisi grafiği için tasarlanmış olan, have a look at Jeff Ryan's chartSeries3d. Burada zamanla verim eğrisini gösteriyor:
Orijinal Cevabı:
Anladığım kadarıyla, countour bir harita 3D yüzey çizim altında uçağa projeksiyon olmak istiyorum. İki araziler oluşturmak ve sonra bunları birleştirerek daha başka kolay bir yolu olduğunu sanmıyorum. 10* *olabilir.
3D çizim için iki temel R paketleri vardır:rgl(veya misc3d ilgili paket kullanabilirsiniz)scatterplot3d.
rgl
Rgl paketi OpenGL etkileşimli 3D araziler (read more on the rgl website) oluşturmak için kullanır. İşte size bir örnek surface3d
fonksiyonu
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")
Alfa parametresi bu yüzey kısmen saydam hale getirir. Şimdi bir yüzeyi etkileşimli 3D bir arsa var ve countour bir harita altında oluşturmak istiyorum. rgl varolan bir görüntü için daha fazla hikaye eklemek için izin verir:
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")
Bu yüzey diğer yüzey altında bir uçak var, böylece yükseklik=1 kurdum. Bu bu şekilde biter, ve bir fare ile döndürülebilir:
scatterplot3d
scatterplot3d R diğer komplo fonksiyonları (read the vignette) gibi biraz daha fazla. Burada basit bir örnek:
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)
Bu durumda, görüntü kaplaması gerekir. R-Wiki has a nice post on creating a tanslucent background image.
Nasıl bir harita kml dosyasını kullana...
Her zaman benim viewmodel yapmak kulla...
Ne kadar basit bir harita JavaScript/J...
Harita saklama<Dize,Dize> kullan...
Ne zaman bir veritabanı kullanarak değ...