(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log by SE

【R言語】scatterplot3dのangleと出力結果の関係

スポンサーリンク

はじめに

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

実際に描画した例は以下です。

ここで3次元データの特徴ですが、同じデータでも見る角度を変えれば印象が変わります。scatterplot3dでもオプションによってアングルが変更可能です。

本記事ではscatterplot3dのオプションであるangleを変化させた場合に出力画像がどのように変化するのかについてアニメーションを利用して確認しました。

angleを変更しながら描画する

scatterplotのオプションは以下です。angleのデフォルトは「40」です。

function (x, y = NULL, z = NULL, color = par("col"), pch = par("pch"), 
    main = NULL, sub = NULL, xlim = NULL, ylim = NULL, zlim = NULL, 
    xlab = NULL, ylab = NULL, zlab = NULL, scale.y = 1, angle = 40, 
    axis = TRUE, tick.marks = TRUE, label.tick.marks = TRUE, 
    x.ticklabs = NULL, y.ticklabs = NULL, z.ticklabs = NULL, 
    y.margin.add = 0, grid = TRUE, box = TRUE, lab = par("lab"), 
    lab.z = mean(lab[1:2]), type = "p", highlight.3d = FALSE, 
    mar = c(5, 3, 4, 3) + 0.1, bg = par("bg"), col.axis = par("col.axis"), 
    col.grid = "grey", col.lab = par("col.lab"), cex.symbols = par("cex"), 
    cex.axis = 0.8 * par("cex.axis"), cex.lab = par("cex.lab"), 
    font.axis = par("font.axis"), font.lab = par("font.lab"), 
    lty.axis = par("lty"), lty.grid = par("lty"), lty.hide = NULL, 
    lty.hplot = par("lty"), log = "", asp = NA, ...) 
{
> scatterplot3d(iris[,1:3], color=colors_iris, pch =20)

f:id:mtiit:20190903010110p:plain

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

f:id:mtiit:20190903204517p:plain

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

f:id:mtiit:20190903204547p:plain

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

f:id:mtiit:20190903204610p:plain

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

f:id:mtiit:20190903204625p:plain

angleを0~360で変更

以下のRスクリプトを用意してGIFを作成しました。

library(animation)
library(scatterplot3d)
colors <- c("#ff0000", "#0000ff", "#008000")
colors_iris <- colors[as.numeric(iris$Species)]
plot3d360 <- function() {
  for (i in 1:360)  {
    scatterplot3d(iris[,1:3], angle=i, color=colors_iris, pch =20, main=i)
  }
}
saveGIF(plot3d360(), interval=0.05,movietype="gif", outdir=getwd(),width=640, height=480)

f:id:mtiit:20190903205723g:plain
angleの変更に伴うplotの変化

終わりに

angleの変化に伴うscatterplot3dですが、データによって見やすい角度は異なると思います。
そんな際、上記のスクリプトで動画にしてベストショットを探すというのもまた作戦の一つかもしれません。

以上、点群データを異なるアングルから見た際の出力画像の関係についてでした。


他の記事を読む