如何解决如何提取深度轮廓DepthProc 中的 depthContour以在 ggpplot2 中使用它们?
考虑以下数据,显示在 ggplot2 中:
## Data in a data.frame
x <- rnorm(n=1E3,sd=2)
y <- x*1.2 + rnorm(n=1E3,sd=2)
df <- data.frame(x,y)
library(ggplot2)
ggplot(df,aes(x,y)) +
geom_point()
现在,使用 DepthProc 包中的 depthContour 函数考虑以下深度轮廓:
library(DepthProc)
depthContour(df,depth_params = list(
method = "Local",beta = 0.1,depth_params1 = list(method = "Projection")
))
是否可以仅提取黑色深度轮廓线(即没有填充颜色),以便将它们添加到 ggplot2 图中?
欢迎任何帮助
解决方法
类似的东西(由于基于 rnorm 的初始数据,不完全相同的等高线图)。
#See depthContour function from the DepthProc package at:
#https://github.com/zzawadz/DepthProc/blob/7d676879a34d49416fb00885526e27bcea119bbf/R/depthContour.R
## Data in a data.frame
x <- rnorm(n=1E3,sd=2)
y <- x*1.2 + rnorm(n=1E3,sd=2)
df <- data.frame(x,y)
n <- 50 #for the n*n matrix
xlim = extendrange(df[,1],f = 0.1)
ylim = extendrange(df[,2],f = 0.1)
x_axis <- seq(xlim[1],xlim[2],length.out = n)
y_axis <- seq(ylim[1],ylim[2],length.out = n)
xy_surface <- expand.grid(x_axis,y_axis)
xy_surface <- cbind(xy_surface[,xy_surface[,2])
ux_list <- list(u = xy_surface,X = df)
library(DepthProc)
depth_params = list(method = "Local",beta = 0.1,depth_params1 = list(method = "Projection"))
depth_params_list <- c(ux_list,depth_params)
depth_surface_raw <- do.call(depth,depth_params_list) #the higher the 'n',the longer the running process
depth_surface <- matrix(depth_surface_raw,ncol = n)
# depth_med <- depthMedian(df,depth_params) #for the depth median,if needed
library(reshape2)
depth_surface_melt <- melt(depth_surface)
depth_surface_melt <- cbind(xy_surface,depth_surface_melt[,3])
depth_surface_melt <- data.frame(depth_surface_melt)
library(ggplot2)
ggplot(df,aes(x,y))+
scale_x_continuous(limits=c(-8,10),expand=c(0,0),breaks=c(-8,-5,5,labels=c("",10))+
scale_y_continuous(limits=c(-12,12),breaks=c(-12,-10,10,""))+
geom_point(color="grey80")+
geom_contour(depth_surface_melt,mapping=aes(x=X1,y=X2,z=X3),bins=10,color="black",size=0.7)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。