我已经生成了这些数据:
dat = MASS::mvrnorm(n = 50,
mu = c(1, 5),
Sigma = matrix(c(1, 0.5, 0.5, 1), nrow = 2),
empirical = TRUE)我可以用以下代码生成2D直方图:
plot_ly(x = dat[,1], y = dat[,2], type = "histogram2dcontour")

我如何在3D中生成这些相同数据的绘图-无论是3D直方图还是3D内核密度分布?
发布于 2019-08-22 14:13:22
你试过bivariate吗?首先,假设您有两列- x和y
library(bivariate)
colnames(dat) <- c("x", "y")
dat <- as.data.frame(dat)
f = kbvpdf (dat$x, dat$y, 0.7, 7)
plot (f, TRUE, xlab="x", ylab="y")

另一种选择是:
# install.packages("plot3D")
library(plot3D)
## Calculate joint counts at cut levels:
z <- table(dat$x, dat$y)
## Plot as a 3D histogram:
hist3D(z=z, border="black")

或者作为2d热图:
## Plot as a 2D heatmap:
image2D(z=z, border="black")

发布于 2021-01-04 19:55:36
从MASS和plotly使用kde2d
dens2d <- kde2d(dat[,1],dat[,2])
fig <- plot_ly(x=dat[,1], y=dat[,2], z=dens2d$z)
fig <- fig %>% add_surface()https://stackoverflow.com/questions/57602608
复制相似问题