(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【R言語】scatterplot3dで点群に色をつけて可視化する

スポンサーリンク

はじめに

R言語ではscatterplot3dという関数を利用して3次元の描画が行えます。

本記事では三次元データを利用した三次散布図を作成する手順を分かりやすく解説しました。

scatterplot3dで3次元データ可視化

インストールは

install.packages("scatterplot3d")

で行います。

irisデータを3次元プロットする

irisデータは以下の構造を持つ150のデータ群です。

  • Sepal.Length: 数値型
  • Sepal.Width : 数値型
  • Petal.Length: 数値型
  • Petal.Width : 数値型
  • Species : カテゴリ型 

中身は以下で、カテゴリとして3種類に分類されています。

> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

今回は3次元データとしてプロットしたいので[,1:3]とすることで

> head(iris[,1:3])
  Sepal.Length Sepal.Width Petal.Length
1          5.1         3.5          1.4
2          4.9         3.0          1.4
3          4.7         3.2          1.3
4          4.6         3.1          1.5
5          5.0         3.6          1.4
6          5.4         3.9          1.7

3要素を取り出します。

> scatterplot3d(iris[,1:3])

f:id:mtiit:20190903005047p:plain

点群として可視化できました。

以下で色分けを行います。

点群を色分けする

setosa、versicolor、virginicaの3種類が

> iris$Species

に格納されています。

この種類を点群の色とするためにas.numericを用い

> as.numeric(iris$Species)
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [42] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 [83] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[124] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

数字に対応する色情報を用意します。それぞれ、赤、青、緑を表すカラーコードです。

> colors <- c("#ff0000", "#0000ff", "#008000")

上記を組み合わせて色情報をデータ分用意し、

> colors_iris <- colors[as.numeric(iris$Species)]

それを点を黒丸で表現するpch=20付きで実行すれば

> scatterplot3d(iris[,1:3], color=colors_iris, pch =20)

以下のようになります。
f:id:mtiit:20190903010110p:plain
点群の可視化として分かりすくなりました。

終わりに

本記事ではscatterplot3dの基本的な利用方法を紹介しました。
3次元データの可視化を行う際の、参考になれば幸いです。