Rで解析:ぐりぐり動く!3D ScatterPlotの作成「threejs」パッケージ

Rの解析に役に立つ記事

ぐりぐり動かすことができる3DのScatterPlot(散布図)を作成できる「threejs」パッケージを紹介します。散布図はデータの特徴を探るのに非常に有効な表現方法だと思います。

本パッケージ以外でも、インタラクティブな3DのScatterPlotを作成できますが、本パッケージは「画像を取り込み、画像ごとインタラクティブな球体図を手軽に作成できること」が特徴かと思います。

バージョンは0.3.3です。

面白いパッケージだと思います。ぜひ、試してみてください。

スポンサーリンク
スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

install.packages("threejs")

実行コマンドの紹介

詳細はコマンド内コメントならびにパッケージのヘルプを確認してください。
地球の画像を読み込み、パッケージ付属のフライトデータプロット(例1)とデータを擬似的に作成し3D散布図をプロット(例2)を紹介します。

#パッケージの読み込み
library("threejs")
par(family = "HiraKakuProN-W3")

#例1
#パッケージ付属データの読み込み
data(flights)

#付属データ座標の整形
dest <- factor(sprintf("¥%.2f:¥%.2f", flights[,3], flights[,4]))
#windowsでのコマンドはこちら
#MACとはエスケープ処理が異なります
dest <- factor(sprintf("\\%.2f:\\%.2f",flights[,3], flights[,4]))

#データの並び替え
freq <- sort(table(dest), decreasing = TRUE)

#TOP10のハブ空港を抽出
frequent_destinations <- names(freq)[1:10]
idx <- dest %in% frequent_destinations

#出発と到着の座標を取得
frequent_flights <- flights[idx, ]

#データの単一化
latlong <- unique(frequent_flights[,3:4])

#データのプロット
#worldをmoonにすると月の写真が使用できます。パッケージにはJupiter, marsの写真が付属しています。
earth <- system.file("images/world.jpg", package = "threejs")
globejs(img = earth, lat = latlong[,1], long = latlong[,2], arcs = frequent_flights,
        arcsHeight = 0.3, arcsLwd = 2, arcsColor = "#ffff00", arcsOpacity = 0.15,
        atmosphere = TRUE)

#例2
#データ例の作成
i <- sample(3, 50, replace = TRUE)
x <- matrix(rnorm(50*3),ncol=3)

#プロットラベルの作成
lab <- c("small", "bigger", "biggest")

#プロット
scatterplot3js(x, color = rainbow(50), labels = lab[i], size = i)

出力例

なお、一部のスマートフォンではインタラクティブには表示されません。パソコンで確認してください。なお、chromeで動作確認をしています。
参考1
クリックすると大きく表示されます。

参考2
クリックすると大きく表示されます。


少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました