1

R data.frame があります。

> str(trainTotal)
'data.frame':   1000 obs. of  41 variables:
 $ V1   : num  0.299 -1.174 1.192 1.573 -0.613 ...
 $ V2   : num  -1.227 0.332 -0.414 -0.58 -0.644 ...
   etc.
 $ V40  : num  0.101 -1.818 2.987 1.883 0.408 ...
 $ Class: int  1 0 0 1 0 1 0 1 1 0 ...

また、V13、V5、および V24 に従って、クラス「0」を青、クラス「1」を赤の 3D 散布図を描きたいと思います。

V13、V5、V24 は、スケーリングされた分散で並べ替えたときに上位の変数であるため、3D ビジュアライゼーションが興味深いものになる可能性があることが直感でわかります。それが理にかなっているのかどうかはわかりません。

これを R でプロットするにはどうすればよいですか?


編集:

私は次のことを試しました:

install.packages("Rcmdr")
library(Rcmdr)

scatter3d(x=trainTotal[[13]], y= trainTotal[[5]], z= trainTotal[[24]], point.col = as.numeric(as.factor(trainTotal[,41])), size = 10)

これにより、次のプロットが得られます。 ここに画像の説明を入力

このプロットの読み方がわかりません。

最初は、2 色のドットだけを見たいと思います。

4

2 に答える 2

1

遠近法の問題は、静的な 3D プロットがほとんど恐ろしく、誤解を招くことを意味します。本当に 3D 散布図が必要な場合は、さまざまな角度から表示できる場所に散布図を作成することをお勧めします。rglパッケージはこれを可能にします。

編集:色を使用するようにプロットを更新しました。この場合はcolorspaceパッケージを使用して選択されていますが、好きなように定義できます。ポイントの属性の指定については、?rgl.materialヘルプ ページに記載されています。

library(rgl)
library(colorspace)

n_points <- 50
n_groups <- 5
some_data <- data.frame(
  x     = seq(0, 1, length.out = n_points), 
  y     = runif(n_points), 
  z     = rnorm(n_points),
  group = gl(n_groups, n_points / n_groups)
)

colors <- rainbow_hcl(n_groups)
with(some_data, points3d(x, y, z, color = colors[group], size = 7))
axes3d()
于 2013-10-16T10:29:37.097 に答える
1

たぶん、このようなものですか?を使用しscatterplot3dます。

    library(scatterplot3d)

    #random data
    DF <- data.frame(V13 = sample(1:100, 10, T), V5 = sample(1:100, 10, T), V24 = sample(1:100, 10, T), class = sample(0:1, 10, T))

    #plot
    scatterplot3d(x = DF$V13, y = DF$V5, z = DF$V24, color = c("blue", "red")[as.factor(DF$class)], pch = 19)

これは与える:

プロット3d

には、さまざまな見解の議論scatterplot3dもあります。angle

于 2013-10-16T11:49:38.333 に答える