12

plot3d()ひねって回転できる3Dプロットを生成します。しかし、plot3d()もう一度電話すると、前のプロットは消えて、このプロットに置き換えられます。

古いウィンドウが新しい3Dプロットに置き換えられるのではなく、新しいXQuartzウィンドウが開くようにするにはどうすればよいですか。

基本的に、2つの3Dプロットを同時に開きたいと思います。

4

3 に答える 3

15

このような:

 library(rgl)

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

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

ここで重要なのは、2 番目のプロットの前に呼び出して、新しい「デバイス」open3dを開くことです。

于 2013-02-05T17:04:06.703 に答える
3

2 番目の rgl プロット ウィンドウが、前のウィンドウのちょうど上に配置されていることに気付くかもしれません。2 番目のウィンドウを移動すると、最初のウィンドウがまだそこにあることがわかります (ただし、現在は「フォーカス」状態ではありません)。デバイスを使用可能にしておくためにデバイスにプロットする必要はありません。フォーカスを取得するウィンドウを次のように変更しますrgl.set

> open3d()
[1] 3     # might have been "1"
> open3d()
[1] 4    # Now move that 2nd  window to the side 
> rgl.set(3)
#Focus is returned to the first window.

(コマンドを取得するという意味で) 2 つのウィンドウを同時にアクティブにすることはできませんが、両方を表示することはできます。一方が回転するように設定されている場合は、フォーカスがもう一方のウィンドウに移動した後も回転し続けます。plot3dを設定すると、関数を使用して既存のプロットに追加することもできますadd=TRUE

于 2013-02-05T21:04:39.450 に答える
2

「一度に 2 つの 3D プロットを開く」代わりに、mfrow3d fromを使用しlibrary("rgl")ます。par("mfrow")これは従来の Rと同じように機能します。

次の適合コード (ここから) は、1 つのウィンドウに 2 つの横並びの 3D プロット (2 列) を生成します。

library(rgl)

mfrow3d(1, 2)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))

x <- sort(rnorm(20))
y <- rnorm(20)
z <- rnorm(20) + atan2(x,y)
plot3d(x, y, z, col=rainbow(20))
于 2019-01-11T13:44:08.053 に答える