帮助使用rgl包

SAN*_*SAN 6 r rgl

我使用选项--disable-libpng安装了rgl包.我尝试生成一个三维散点图,它崩溃了.请帮我解决这个问题

这是我正在运行的代码

library(rgl)
open3d()
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
Run Code Online (Sandbox Code Playgroud)

它崩溃了下面的消息

 *** caught segfault ***
address (nil), cause 'memory not mapped'

Traceback:
 1: .External(rgl_par3d, args)
 2: par3d(skip)
 3: plot3d.default(x, y, z, col = rainbow(1000))
 4: plot3d(x, y, z, col = rainbow(1000))

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:
Run Code Online (Sandbox Code Playgroud)

这是来自sessionInfo()的信息

    > sessionInfo()
R version 2.11.1 (2010-05-31)
x86_64-unknown-linux-gnu

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C
 [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] rgl_0.92.798
Run Code Online (Sandbox Code Playgroud)

这是来自sysname命令

x86-64_linux_2.6.16_ImageSLES10SP3-3
Run Code Online (Sandbox Code Playgroud)

更多信息:

我能够从R中的一些代码生成表面图:从x,y,z绘制3D表面

这是代码

x <- seq(-10, 10, length.out = 50)
y <- x
rotsinc <- function(x,y) {
    sinc <- function(x) {
        y <- sin(x)/x;
        y[is.na(y)] <- 1;
        y
    }
    10 * sinc( sqrt(x^2+y^2) )
}
z <- outer(x, y, rotsinc)

surface3d(x, y, z)
Run Code Online (Sandbox Code Playgroud)

我尝试了演示(rgl),这也是类似的消息崩溃.我想生成3d图,你推荐其他包吗?ggplot?

Dir*_*tel 3

rgl包通过其驱动程序利用显卡中可能的硬件加速。

不幸的是,这完全取决于驾驶员。我多年来一直使用rgl进行动画可视化——例如,参见2005 年的选项分析表面可视化——我可以向您保证,它在某些机器上无缘无故地崩溃,而在其他机器上运行。在做出任何确定的结论之前,您确实应该尝试使用不同的驱动程序在不同的机器上。

计算机使用硬件,有时硬件也会起作用。我可以在我的一台机器上很好地执行你的代码。另一种是双屏,因此没有 GL 扩展,所以不会。我有没有提到硬件咬合?