7

我想创建一个具有密度的 3d 图。

我使用函数密度首先为特定的 x 值创建一个二维图,然后该函数创建密度并将它们放入 y 变量中。现在我有第二组 x 值并将其再次放入密度函数中,我得到第二组 y 变量,依此类推....我想将这些集合放入 3d 图中,我希望你知道我意思是。所以我有一个密度表面......

例如我有:

x1<-c(1:10)
x2<-c(2:11)
y1<-c(1,1,2,1,3,4,2,3,2,2)
y2<-c(1,2,3,1,3,6,2,8,2,2)
.
.
.
.

现在我想在 x 轴上放置第一个值 1 第一组,在 y 轴上放置相应的 x 值,在 z 轴上放置密度。所以我有一个 x=1 的“磁盘”,对于 x=2 我有第二个“磁盘”等等,所以我得到了一个密度“山”。

我希望我可以理解,如果您有更好的想法来实现它,那么欢迎您!我想用 persp 函数来做,如果你用那个函数做一个例子会很好,

非常感谢你的帮助。

4

2 回答 2

11

恐怕我无法回答你的问题。但这里是你如何从你首先估计双变量密度的二维数据集中绘制我认为你正在寻找的那种图:

x <- rnorm(1000)
y <- 2 + x*rnorm(1000,1,.1) + rnorm(1000)
library(MASS)
den3d <- kde2d(x, y)
persp(den3d, box=FALSE)

在此处输入图像描述

那么 persp 有很多选择,看看

?persp
于 2012-11-29T18:32:05.563 回答
11

建立在彼得的回答之上。情节现在可以更有趣、更漂亮并且与plotly图书馆互动。

x <- rnorm(1000)
y <- 2 + x*rnorm(1000,1,.1) + rnorm(1000)
library(MASS)
den3d <- kde2d(x, y)

# the new part:
library(plotly)
plot_ly(x=den3d$x, y=den3d$y, z=den3d$z) %>% add_surface()

这使:

在此处输入图像描述

于 2018-01-23T20:39:01.980 回答