我正在尝试在 R 中创建一个 3D 曲面图——我已经阅读了许多其他问题,但找不到解决方案:(
我在空间内有 X 和 Y 坐标(每个 X,Y 对指一个点)例如:
x y
10 15
11 11
8 11
15 14
15 8
13 11
50 29
29 30
90 40
55 39
我会把这些点绘制成曲面图,这样附近的点越多,图的密度就越高(例如,很明显,靠近 (10,10) 的点很多,只有一个指向 (90,40)。
理想的解决方案如下所示:
我尝试使用这个 - https://cran.r-project.org/web/packages/HSAUR/vignettes/Ch_density_estimation.pdf (这是我找到上图的地方)。但不幸的是,我无法让示例正常工作——带有数据的库不可用!
我的想法是将此可视化效果与表面图像进行比较,因此我需要 x 和 y 坐标 (0,0) 从一个位置开始(就像在图像上一样,两个日志都从一个角开始)。我还需要轴不相等,x 轴从 0 到 100,y 轴从 0 到 50,这样原始坐标就不会失真,并且可视化显示数据与表面成比例。
我真的希望有人能帮助我!
编辑: 到目前为止,我已经尝试按照上面文件中的说明进行操作,这意味着使用高斯函数来估计峰值。
test <- read.csv("test1.csv", header = TRUE)
gauss <- function(x) 1/sqrt(2*pi) * exp(-(x^2)/2)
n <- 100
h <- 10
xgrid <- seq(from = 0, to = 1280, by = 16)
bumps <- sapply(test$x, function(a) gauss((xgrid - a)/h)/(n * h))
persp(bumps, theta = 60, axes = TRUE, box = TRUE)
最佳答案
请参阅常用MASS
库中的kde2d
。假设您的数据在 data
中,那么下面将生成估计密度函数的透视图。请参阅相关功能的帮助文件以了解如何调整。
library(MASS)
with(data,persp(kde2d(x,y)))
关于r - 二维曲面绘图 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118441/