Ubuntu上のRで、OpenGLを用いた3次元可視化パッケージであるrglをインストールする方法をお伝えする。

通常の方法で、Rにrlgパッケージをインストールしようとしても、「X11が見つからない」とエラーが出てインストールできない。


> install.packages('rgl')

configure: error: X11 not found but required, configure aborted.
ERROR: configuration failed for package ‘rgl’

R上でrglパッケージをinstall.packages関数でインストールする場合は、Ubuntu側で、各種依存ライブラリをインストールする必要がある。
これは少し大変なので、最も簡単にrglを使う方法は、ターミナル(端末)上で、apt-getからインストールすればよい。
各種依存ライブラリをインストールよりも圧倒的に簡単だ。


$ sudo apt-get install r-cran-rgl

rglパッケージがインストールできたところで、実際に少し触ってみる。
サンプルデータとして、Rに標準で付属しているOrchardSprays(オーチャードスプレーの効力)を用いた。
これは、ラテン方格法を使用して、ミツバチを退ける果樹園のスプレーの様々な成分の効力を評価するために実施した実験結果で、次のようなデータフレームとなっている。
詳しい内容は「help(OrchardSprays)」を実行して参照してみてほしい。


> str(OrchardSprays)
'data.frame':	64 obs. of  4 variables:
 $ decrease : num  57 95 8 69 92 90 15 2 84 6 ...
 $ rowpos   : num  1 2 3 4 5 6 7 8 1 2 ...
 $ colpos   : num  1 1 1 1 1 1 1 1 2 2 ...
 $ treatment: Factor w/ 8 levels "A","B","C","D",..: 4 5 2 8 7 6 3 1 3 2 ...

実際に、プロットしてみる。


> library(rgl)

> plot3d(
      x = OrchardSprays$colpos, 
      y = OrchardSprays$rowpos, 
      z = OrchardSprays$decrease, 
      col = rainbow(7)[OrchardSprays$treatment], 
      size = 5)

別ウィンドウが開いて、次のような画面が表示される。
マウスで適当に動かして、視点をずらすことができる。

sample-1
プロットされた3次元グラフィックを保存する場合は、別ウィンドウが開いた状態で、R上に次のコマンドを実行すればよい。


> rgl.snapshot('sample-1.png')

gifアニメーションとして保存する場合は、あらかじめUbuntuのターミナル上で、imagemagickをインストールしておく。


$ sudo apt-get isntall imagemagick

Rでのコマンドは次のようになる。


> # ウィンドウ起動
> open3d() 
> 
> # ウィンドウにプロット
> plot3d(
       x = OrchardSprays$colpos, 
       y = OrchardSprays$rowpos, 
       z = OrchardSprays$decrease, 
       col = rainbow(7)[OrchardSprays$treatment], 
       size = 5)
> 
> # プロットしたものを動かす
> M  if (!rgl.useNULL())
      play3d(
          par3dinterp(
              userMatrix = list(
                  M,
                  rotate3d(M, pi/2, 1, 0, 0),
                  rotate3d(M, pi/2, 0, 1, 0) ) ), 
          duration=3 )
> 
> # gifアニメーションとして保存
> movie3d(spin3d(), duration=10, movie='sample-2')

sample-2

関連する記事

  • R 関数に時間制限を設ける方法 ある処理にとても時間が掛かるため、一定時間経過後はその処理を途中で打ち切りたいときがある。 例えば、for文で、あるループだけが重いため全体として時間が掛かってしまう場合、その処理を一旦スキップしてfor文の先に処理を進めたい、などである。 ここでは、そのひとつの解決策として、関数に時間制限を設けて、一定時間経過後はその関数を強制終了するコードをご紹介する。 ただし […]
  • TensorFlow チュートリアルDeep MNIST for Expertsを試してみるTensorFlow チュートリアルDeep MNIST for Expertsを試してみる TensorFlowのチュートリアルDeep MNIST for Expertsを試してみる。 import tensorflow as tf import input_data # MNISTデータを取得 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # […]
  • Ubuntu 日本語形態素解析システムJUMANのインストール方法Ubuntu 日本語形態素解析システムJUMANのインストール方法 buntu14.04で日本語形態素解析システムJUMANのインストール方法をお伝えする。 JUMAN単体では次のコマンドで簡単にインストールできる。 $ sudo apt-get install […]
  • R MASSパッケージcorresp関数のエラー対処方法 RのMASSパッケージ内のcorresp関数を用いたとき、エラーに悩まされたので、皆様と共有しておく。 環境 Ubuntuのバージョン $ cat /etc/lsb-release […]
  • R スミルノフ・グラブス検定を繰り返し用いて外れ値を除去する方法 スミルノフ・グラブス検定は、正規分布を仮定した標本において、最大値または最小値が外れ値かどうか判定する検定の一つである。 外れ値を除去する際、外れ値を一つずつ検証することよりも、外れ値がすべて除去されたデータだけがほしいときもあるのではないだろうか。 ここでは、正規分布を仮定したデータからスミルノフ・グラブス検定を繰り返し用いて外れ値を除去するソースコードをご紹介する […]
Ubuntu,R OpenGLを用いた3次元可視化パッケージrglのインストール方法