Ubuntu上のRで、OpenGLを用いた3次元可視化パッケージであるrglをインストールする方法をいくつかのパターンに分けてお伝します。
Rはaptコマンドによりインストールされているものとします。

R上でinstall.packages関数によりrlgパッケージをインストールしようとしても、次のように「X11が見つからない」とエラーが出てインストールできません。


> install.packages('rgl')

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

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

Rのバージョンが3.5

Rのバージョンが3.5の場合、aptコマンドによりrglをインストールすることはできません。
これは、Rのバージョン3.5をインストールするときに、/etc/apt/source.listに登録したurlにrglがないためです。
RのミラーサイトThe Comprehensive R Archive Networkから、R Binaries→linux→ubuntu→bionic-cran35をたどると確かにrglパッケージがないことが確認できます。

例えば、Ubuntu18.04のターミナル(端末)上でaptコマンドによりrglパッケージをインストールしようとすると次のように表示されます。
これは、Rのバージョンは3.5だが、r-cran-rglはRのバージョンが3.4に対応しているもののため、インストールできないということになります。


$ sudo apt install r-cran-rgl

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 r-cran-rgl : 依存: r-api-3.4
              依存: r-cran-htmlwidgets しかし、インストールされようとしていません
              依存: r-cran-htmltools しかし、インストールされようとしていません
              依存: r-cran-knitr しかし、インストールされようとしていません
              依存: r-cran-jsonlite しかし、インストールされようとしていません
              依存: r-cran-shiny しかし、インストールされようとしていません
              依存: r-cran-magrittr しかし、インストールされようとしていません
              依存: r-cran-crosstalk しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

このとき、rglパッケージをインストールする方法は、事前に各種依存ライブラリをターミナル(端末)上でインストールした後、R上でinstall.packages(“rgl”)を実行します。
まずは、ターミナル(端末)上で次のコマンド実行します。


$ sudo apt install xorg libx11-dev libglu1-mesa-dev libfreetype6-dev

次にR上で次のコマンドを実行します。


> install.packages("rgl")

Rのバージョンが3.4の場合

最も簡単にrglパッケージをインストールする方法は、ターミナル(端末)上で、次のようにaptコマンドからインストールすることです。
各種依存ライブラリのインストールを考える必要がないため、圧倒的に簡単に済みます。


$ 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 ...

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


> # rglパッケージの読み込み
> library(rgl)
>
> plot3d(
>     x = OrchardSprays$colpos, 
>     y = OrchardSprays$rowpos, 
>     z = OrchardSprays$decrease, 
>     col = rainbow(7)[OrchardSprays$treatment], 
>     size = 5)

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

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


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

sample-1

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 <- par3d("userMatrix") > 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言語 CRAN Task View:Web技術とサービスR言語 CRAN Task View:Web技術とサービス CRAN Task View: Web Technologies and Servicesの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Scott Chamberlain, Thomas Leeper, Patrick Mair, Karthik Ram, Christopher […]
  • matplotlibで箱ひげ図を表示する方法matplotlibで箱ひげ図を表示する方法 Python3でmatplotlibを用いて、箱ひげ図を表示する方法をお伝えする。 Ubuntu14.04環境で動作することを確認している。 一つ注意点として、日本語に対応させるために、ここでは「IPAexGothic」を用いている。 import matplotlib as mpl import matplotlib.pyplot as […]
  • Ubuntu MongoDBのインストールする手順Ubuntu MongoDBのインストールする手順 Ubuntu16.04にMongoDB3.4をインストールする手順をお伝えいたします。 環境 今回の作業環境を確認しておきます。また、以下の作業はすべてターミナルにて行っております。 Ubuntuのバージョン $ cat […]
  • R 文字列の行を指定した幅で強制的に折り返す方法R 文字列の行を指定した幅で強制的に折り返す方法 R […]
  • カイ二乗検定 – 適合度検定カイ二乗検定 – 適合度検定 適合度検定とは、観測度数分布が期待度数分布と同じかどうかを統計的に確かめる方法である。 適合度検定を行う手順は次の通りである。 仮説を立てる。 帰無仮説 H0:観測度数分布と期待度数分布が同じ。 対立仮説 […]
Ubuntu,R OpenGLを用いた3次元可視化パッケージrglのインストール方法