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

関連する記事

  • Python KNPを用いて係り受け構造を抽出する方法Python KNPを用いて係り受け構造を抽出する方法 Ubuntu14.04環境で、Python3と日本語構文・格・照応解析システムKNPを用いて係る語と受ける語のペアを抽出する方法をご紹介する。 係り受け構造を抽出するPython3のソースコードは次である。 from pyknp import KNP def […]
  • R言語 CRAN Task View:臨床試験デザイン、監視、および分析R言語 CRAN Task View:臨床試験デザイン、監視、および分析 CRAN Task View:Clinical Trial Design, Monitoring, and Analysisの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Ed Zhang and Harry G. Zhang Contact: Ed.Zhang.jr at […]
  • 適切な回答を得るためのアンケートの作り方適切な回答を得るためのアンケートの作り方 アンケートは正しく質問をしないと、適切な回答が得られずにアンケートが持つ情報の価値が半減すると言っても過言ではない。 アンケートを回答しているときの気持ちを思い出して欲しい。おそらく、さっさと終わらせようと思いながら回答用紙に記入しているのではないだろうか。 あなたが質問者の側になったときは、この気持ちを常に念頭に置いて質問を考えよう。 ここでは、質問を作成 […]
  • Ubuntu18.04で任意のバージョンのNode.jsをインストールする方法Ubuntu18.04で任意のバージョンのNode.jsをインストールする方法 Ubuntu18.04で、任意のバージョンのNode.js環境を構築する方法をお伝えいたします。 aptコマンドによりNode.jsをインストールしようとすると、かなり古いバージョンがインストールされます。 そのため、最新または任意のバージョンをインストールするときは、PPA(personal package […]
  • R言語 CRAN Task View:水文データとモデリングR言語 CRAN Task View:水文データとモデリング CRAN Task View: Hydrological Data and Modelingの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Sam Zipper, Sam Albers, Ilaria Prosdocimi Contact: samuelczipper at […]
Ubuntu,R OpenGLを用いた3次元可視化パッケージrglのインストール方法