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

ぐりぐり動かすことができる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("&yen;%.2f:&yen;%.2f", flights[,3], flights[,4]))
#windows&#12391;&#12398;&#12467;&#12510;&#12531;&#12489;&#12399;&#12371;&#12385;&#12425;
#MAC&#12392;&#12399;&#12456;&#12473;&#12465;&#12540;&#12503;&#20966;&#29702;&#12364;&#30064;&#12394;&#12426;&#12414;&#12377;
dest <- factor(sprintf("\\%.2f:\\%.2f",flights[,3], flights[,4]))

#&#12487;&#12540;&#12479;&#12398;&#20006;&#12403;&#26367;&#12360;
freq <- sort(table(dest), decreasing = TRUE)

#TOP10&#12398;&#12495;&#12502;&#31354;&#28207;&#12434;&#25277;&#20986;
frequent_destinations <- names(freq)[1:10]
idx <- dest %in% frequent_destinations

#&#20986;&#30330;&#12392;&#21040;&#30528;&#12398;&#24231;&#27161;&#12434;&#21462;&#24471;
frequent_flights <- flights[idx, ]

#&#12487;&#12540;&#12479;&#12398;&#21336;&#19968;&#21270;
latlong <- unique(frequent_flights[,3:4])

#&#12487;&#12540;&#12479;&#12398;&#12503;&#12525;&#12483;&#12488;
#world&#12434;moon&#12395;&#12377;&#12427;&#12392;&#26376;&#12398;&#20889;&#30495;&#12364;&#20351;&#29992;&#12391;&#12365;&#12414;&#12377;&#12290;&#12497;&#12483;&#12465;&#12540;&#12472;&#12395;&#12399;Jupiter, mars&#12398;&#20889;&#30495;&#12364;&#20184;&#23646;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;
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)

#&#20363;2
#&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;
i <- sample(3, 50, replace = TRUE)
x <- matrix(rnorm(50*3),ncol=3)

#&#12503;&#12525;&#12483;&#12488;&#12521;&#12505;&#12523;&#12398;&#20316;&#25104;
lab <- c("small", "bigger", "biggest")

#&#12503;&#12525;&#12483;&#12488;
scatterplot3js(x, color = rainbow(50), labels = lab[i], size = i)

出力例

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

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


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

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました