我想绘制一个分层组套索惩罚的单位球:Omgega(b)= w1 * sqrt(b1 ^ 2 + b2 ^ 2 + b3 ^ 2)+ w2 * sqrt(b2 ^ 2 + b3 ^ 2)+ w3 * sqrt(b3 ^ 2)= 1。
require(rgl)
w=c(1,1,1)
## Plot unit ball in the 1st space sector (x>0, y>0, z>0)
leng <- 1000
b3.HGL <- seq(-1/sum(w), 1/sum(w), len=leng)
b2.HGL <- seq(-1/(w[1]+w[2]), 1/(w[1]+w[2]), len=leng)
b1.HGL <- matrix(NA, leng, leng)
for (i in 1:leng) {
for (j in 1:leng) {
b1 <- (1 - w[3]*abs(b3.HGL[j]) - w[2]*sqrt(b2.HGL[i]^2 + b3.HGL[j]^2))^2/w[1]^2 - b2.HGL[i]^2 - b3.HGL[j]^2
if (b1 >= 0) {
b1.HGL[i,j] <- sqrt(b1)
}
}
}
persp3d(b2.HGL, b3.HGL, b1.HGL, xlim=range(-1,1), ylim=range(-1,1),zlim=range(-1,1), col="#DF8585")
persp3d(b2.HGL, b3.HGL, -b1.HGL, xlim=range(-1,1), ylim=range(-1,1),zlim=range(-1,1), col="#DF8585", add=T)
我一直在尝试在同一个数字上绘制两个三维透视图,两者平滑连接(两者之间没有间隙)。我在R中的{rgl}包中使用了persp3d函数。但是,两个透视图之间总是存在差距。我想要的是一条平滑的曲线。我怎么能实现呢?任何建议都会有所帮助! PS:由于我的声望得分不高于10,我现在无法粘贴数字。任何善意的人请在R中运行上述代码,你会看到我的意思&#34; gap&#34;。以下是我想要的图片的链接:Image I Want