2017-01-23 4 views
1

私はrglプロット(実際の例では、1つはライン用、もう1つはポイント用)に複数の背景凡例を入れようとしています。スクリーン。 rglの既定の動作は、新しい凡例が呼び出されたときに古い凡例を置き換えることです。 rgllegend3d例から変更次のコードは、このことを示しています複数の2Dバックグラウンドプロットを

library(rgl) 
x <- rnorm(100) 
y <- rnorm(100) 
z <- rnorm(100) 
open3d() 
par3d(windowRect = c(100, 100, 612, 612)) 
plot3d(x, y, z) 
legend3d(x = 0, y = 0, xjust = 0, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16)) 
legend3d(x = 1, y = 0, xjust = 1, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16)) 

私はこの現象を回避し、複数の2Dグラフィックスを表示するために取得するために何ができますか?

答えて

2

legend3d()は、plot()の後にlegend()を使用して背景を作成します。したがって、複数の凡例を作成することはできません。 bgplot3d()を使用する方が良いでしょう。

open3d() 
par3d(windowRect = c(100, 100, 612, 612)) 

plot3d(x, y, z) 

bgplot3d({ 
    par(mar = c(0, 0, 0, 0)) 
    plot(0, 0, type = "n", xlim = 0:1, ylim = 0:1, xaxs = "i", 
     yaxs = "i", axes = FALSE, bty = "n") 
    legend(x = 0, y = 0, xjust = 0, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16)) 
    legend(x = 1, y = 0, xjust = 1, yjust = 0, legend = c("2D", "3D"), pch = c(1, 16)) 
}) 

enter image description here

関連する問題