0
3D棒グラフ(ggplot2 3D Bar Plot)をプロットする方法を見つけました。ありがとう@jbaumsマップの上に3DバーをプロットするR
しかし、底面をマップに変更する方法はありますか?だから、私はマップ上の棒グラフを使って人口密度などを明確に視覚化して、異なる部分の違いを表示することができます。前もって感謝します。 plotting 3D bars on top of the map
3D棒グラフ(ggplot2 3D Bar Plot)をプロットする方法を見つけました。ありがとう@jbaumsマップの上に3DバーをプロットするR
しかし、底面をマップに変更する方法はありますか?だから、私はマップ上の棒グラフを使って人口密度などを明確に視覚化して、異なる部分の違いを表示することができます。前もって感謝します。 plotting 3D bars on top of the map
ここであなたのような何か与え
# Plotting 3D maps using OpenStreetMap and RGL. For info see:
# http://geotheory.co.uk/blog/2013/04/26/plotting-3d-maps-with-rgl/
map3d <- function(map, ...){
if(length(map$tiles)!=1){stop("multiple tiles not implemented") }
nx = map$tiles[[1]]$xres
ny = map$tiles[[1]]$yres
xmin = map$tiles[[1]]$bbox$p1[1]
xmax = map$tiles[[1]]$bbox$p2[1]
ymin = map$tiles[[1]]$bbox$p1[2]
ymax = map$tiles[[1]]$bbox$p2[2]
xc = seq(xmin,xmax,len=ny)
yc = seq(ymin,ymax,len=nx)
colours = matrix(map$tiles[[1]]$colorData,ny,nx)
m = matrix(0,ny,nx)
surface3d(xc,yc,m,col=colours, ...)
return(list(xc=xc, yc=yc, colours=colours))
}
require(rgl)
require(OpenStreetMap)
map <- openproj(openmap(c(52.5227,13.2974),c(52.4329,13.5669), zoom = 10))
set.seed(1)
n <- 30
bbox <- unlist(map$bbox, use.names = F)
x <- do.call(runif, c(list(n), as.list(bbox[c(1,3)])))
y <- do.call(runif, c(list(n), as.list(bbox[c(4,2)])))
z <- runif(n, 0, .1)
m <- rbind(cbind(x,y,z=0), cbind(x,y,z))
m <- m[as.vector(mapply(c, 1:n, (n+1):(2*n))),]
open3d(windowRect=c(100,100,800,600))
coords <- map3d(map, lit=F)
segments3d(m, col="red", add=T)
一つの方法です:
そして、あなたは多分それはより多くのあなたの例のように見えるようにbox3D
を使用するように拡張することができ、別の方法は、 :
ありがとうsoooo! – Kaner