Помощь в использовании пакета rgl - PullRequest
6 голосов
/ 02 марта 2011

Я установил пакет rgl с опцией --disable-libpng.Я попытался сгенерировать трехмерный точечный график, и он вылетел.Пожалуйста, помогите мне в решении этого

Это код, который я запускаю

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

Он падает с сообщениями ниже

 *** 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:

Вот информация из 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

Это из команды sysname

x86-64_linux_2.6.16_ImageSLES10SP3-3

Дополнительная информация:

Я могу сгенерировать поверхностный график из некоторого кода в R: Построение трехмерной поверхности из x, y, z

Вот код

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)

Я пробовал демо (rgl), и это также вылетает с похожим сообщением.Я хочу создать 3D-графики, какой другой пакет вы рекомендуете?ggplot

Ответы [ 2 ]

3 голосов
/ 02 марта 2011

Пакет rgl использует возможное аппаратное ускорение вашей видеокарты через драйвер.

К сожалению, это полностью зависит от драйвера. Я использую rgl для анимированной визуализации в течение ряда лет - см., Например, эту визуализацию опциональных поверхностей анализа с 2005 --- которую я могу заверить, что вы потерпели крах без толку Разум на одних машинах и работает на других. Вы действительно должны попробовать другой компьютер с другим драйвером, прежде чем делать какие-либо твердые выводы.

Компьютеры используют аппаратные средства, а иногда и аппаратные укусы. Я могу ваш код нормально на одной из моих машин. Другой - двойной экран и, следовательно, без расширения GL, так что не будет. Я упоминал аппаратные укусы?

1 голос
/ 17 января 2013

Я тестировал точно такой же код в моей системе, и он работал отлично.

Какими бы ни были проблемы, они, вероятно, были исправлены.

Тест 1:

library(rgl)
demo(rgl)

Тест 2:

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

Моя система - Windows 7 x64 под управлением R v2.14.2. Протестировано в двух IDE, а именно Revolution R и RStudio.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...