二维表面绘图R

时间:2016-01-31 19:35:33

标签: r

我正在尝试在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)。

理想的解决方案如下:

enter image description here

我试图使用它 - 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)

1 个答案:

答案 0 :(得分:2)

请参阅常用kde2d库中的MASS。假设您的数据位于data,则以下内容将生成估计密度函数的透视图。请参阅相关功能的帮助文件以了解如何进行调整。

library(MASS)
with(data,persp(kde2d(x,y)))