6

オプション--disable-libpngを指定してrglパッケージをインストールしました。3D散布図を生成しようとしましたが、クラッシュします。これを解決するのを手伝ってください

これは私が実行しているコードです

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から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)

demo(rgl)を試しましたが、同様のメッセージでクラッシュしています。3Dプロットを生成したいのですが、他にどのパッケージをお勧めしますか?ggplot?

4

2 に答える 2

3

rglパッケージは、ドライバを介してグラフィックカードで可能なハードウェアアクセラレーションを利用します

残念ながら、これは完全にドライバーに依存しています。私は何年もの間、アニメーション化された視覚化にrglを使用しています---たとえば、2005年のオプション分析サーフェスのこの視覚化を参照してください---一部のマシンでは理由もなくクラッシュし、他のマシンで実行されていることを保証できます。確固たる結論を出す前に、実際には別のドライバーを使用して別のマシンで試してみる必要があります。

コンピューターはハードウェアを使用し、ハードウェアに噛み付く場合もあります。私のマシンの1つであなたのコードをうまく動かすことができます。もう1つはデュアルスクリーンであるため、GL拡張機能がないため、拡張機能はありません。ハードウェアバイトについて言及しましたか?

于 2011-03-02T13:38:23.147 に答える
1

私は自分のシステムでまったく同じコードをテストしましたが、それは完全に機能しました。

問題が何であれ、おそらく修正されています。

テスト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))

私のシステムは、Rv2.14.2を実行しているWindows7x64です。2つのIDE、つまりRevolutionRとRStudioでテストされています。

ここに画像の説明を入力してください

于 2013-01-17T19:22:06.850 に答える