2019.7.30
研究を行っていくうえで、日々新しく登場する方法論や道具を吟味し、取り入れることは不可欠です。
解析や結果の表示(視覚化)をとっても、数多の魅力的なツールが現れてくる一方、その導入や学習は都度大変なもの。
そんななか、手を動かしながらそのツールの使い方を模索したり勉強したいという場合もあるでしょう。
ここでは、Rのパッケージ"ggplot2"をGUIで操作できるパッケージを触ってみたいと思います。
こちらのサイトを拝見して、有用そうなパッケージを私も簡単にレビューしてみたので書いておきます。
以下にご案内します、ggplotguiとggraptRはデフォルトのWebブラウザ上で動作するアプリです。
localhostを使用し、ネットワークに接続しなくても使えます。
描画したい変数(列要素)や見た目をクリックしながら、グラフを編集・保存でき、その描画用のコードも出してくれます。
まさに手を動かしながらggplot2を学ぶにはうってつけではないでしょうか。
install.packages("ggplotgui") ggplotgui::ggplot_shiny(data=iris) # アヤメのサンプルデータを読み込んでブラウザにGUIを立ち上げる。
引数無しで実行した場合、サンプルのデータセット"mpg"がロードされる様子。立ち上げた後はGUI上で他のデータセットが選択できます。
もちろん、Rのコンソール上で読み込んだデータを変数に格納し、この変数を引数にしてGUIへロードすることもできます。
たとえば、次のようなデータフレームがあるとします。(data.frameへの変換についてはこちら)
実行例:
> iris Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2 setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa 5.4 3.9 1.7 0.4 setosa ... write.table(iris,"iris.txt") # このサンプルデータを保存
EXCELやLibreOffice上のデータを「ctl + c」(Macなら「⌘ + c」)でコピーし、R上に読み込むこともできます。
井関龍太先生のサイト
d <- read.table("iris.txt", header=T, sep="") library(ggplotgui) ggplot_shiny(d) # library("ggplotgui")とすれば、"ggplotgui::"は無用。
上のサイトにもありますが、出力画像の保存形式はPDFのみです。
"R-code"のタブに描画されたグラフのコードが自動生成されますので、R本体(あるいはRstudio)のコンソールへこれをコピペして描画する必要があると思います。
ggplot2の画像オブジェクトをファイルへ保存する、ggsave()のファイル名拡張子を変更すれば、好きな形式で保存できるでしょう。
自動生成されたコードでは元のデータが"df"という変数に置き換わっていますので、ここをコンソール上では元データへ書き換える必要があります。
2019.8.3:追記
Rstudioで"ggplotgui::ggplot_shiny()"とタイプすると、webブラウザではなくRstudio上でGUIのウィンドウが開きます。
どうやら、ggraptRはブラウザでしか開かないらしいです。
install.packages("ggraptR") ggraptR::ggraptR(iris)
ヴェロキラプトルのRAPPYちゃんがとても愛らしいWebアプリ。
パッケージ名と同一のggraptR()でGUIが立ち上がります。引数がないと、サンプルデータセットの"diamonds"を読み込む模様。
ggraptRでは、出力を.pngや.jpgなどの画像ファイルで保存できます。
ただgeom_smooth()で回帰直線を引く際に信頼区間の帯を一緒に描画してしまいます。
"Code"タブで自動生成されたコードをコピペして、この関数内にse=FALSEを書き込むしか無いでしょう。
ちなみに、ggraptR()で読み込んだデータは、引数とした変数名がそのまま自動生成されるコードへ引き継がれる様子。
私にはggraptRは使い勝手が良さそうでした。ところが、ネットワーク環境を変えたら異変が。
ggplotguiのggplot_shiny()は普通に使えているので、shinyの問題ではないと思うのですが。。
127.0.0.1:6012/で立ち上がろうとしますが、localhostの設定がおかしいわけではない?バグでしょうか?
うまく立ち上がらない場合は、ネットワーク環境を変えるか接続を切るのが無難かもしれません。。
2019.8.1:追記
また同じネットワーク環境で実行したら、正常に動きました。
いったい何だったのだ・・・・