KNIMEとRの連携で自由なグラフ描画が実現
KNIMEのグラフ描画ノード(Bar PlotやLine Plot等)を使用してグラフを描こうとすると、グラフの線の太さや色、エラーバー等の細かいフォーマット設定に限界があり、描きたいグラフが描けないことが多いです。Rでグラフを描くと、それらの設定が自由自在にできるということが最大のメリットです。
また、KNIMEでグラフ描画ワークフローを作成すると、データを入れるだけで決まった形でグラフ自動描画が可能になるので、毎回の細かいフォーマット設定が不要になります。さらにLoopを回せば大量のグラフを自動描画できるので、とても便利です。
プログラミングの知識が皆無だった私でも、実はすぐにKNIME上でRを動かし、グラフ描画を行えるようになりました。
KNIMEとRを連携する方法から、Rのコードを書きグラフにするまで、実際に初心者の私が行ったことを丁寧に説明しますので、是非参考にしてみてください。
KNIMEとRの連携
KNIMEでRを動かすために、まずは連携設定をします。
Rを使用したことが無い方は、まずRをインストールします。
①Rのインストール

このリンクにアクセスしてPCにインストーラーをダウンロードし、Rのインストールを完了させましょう。
②必要なパッケージのインストール
次にRを起動させて使用するパッケージをインストールします。
KNIMEのRに関するノードを使用するには、”Rserve”パッケージをインストールする必要があります。また、グラフを描く際には”ggplot2”パッケージを使用するので、この段階でインストールしておきます。
このようにRで様々なパッケージを使用したいときには、そのパッケージがインストールされてる必要がありますが、この作業はKNIME上では出来ずRを起動させてインストールする形になります。
パッケージのインストール方法はRのことがよく分からない私でもできるくらい簡単です!
Rを起動しConsoleに以下のコードを入力してください。Enterでインストールを進めてくれます。
install.packages("Rserve") install.packages("ggplot2")

コピーアイコンをクリックすると、簡単にコードがコピーできます!
③KNIME上でのR連携設定
最後にKNIMEでの設定を完了させます。 KNIMEを起動して、File> Install KNIME Extensionsを開きます。KNIME & Extensionsの中のKNIME Interactive R Statistics Integrationにチェックを入れてインストールしてください。(完了後KNIMEが再起動されます)

次にFile> Preferencesを開き、左のツリーでKNIME内のRを選択します。Path to R HomeにRのパスを選んでApply & Closeをしてください。 (例:C:\Program Files\R\R-4.4.0)


これでKNIMEとRの連携設定完了です!KNIMEでRのノードが使えるようになっています。
Rノードでグラフ自動描画 ~ノード紹介~
今回使用するRのノード”R Source”・”R View”と、よく使用するノード”R Snippet”について簡単に紹介します。
Rのノードは、KNIMEのノード検索部分のScripting < Rにあります。

・R Source (Table)
└Rスクリプトを実行し、データを生成できる。

・R View (Table)
└KNIME上のデータをRスクリプトで可視化(グラフ等)できる。

・R Snippet
└KNIME上のデータをRスクリプトで処理できる。
Rノードでグラフ自動描画 ~ワークフロー
ワークフローと各ノードの出力結果はこのようになります。(https://hub.knime.com/s/wUi3kuICJ5rT5VMV)
このワークフローを応用してLoopを使って自動でグラフを出力したり、Rのコードを修正してKNIMEのグラフ描画ノードでは出来ないグラフの細かいフォーマット設定をすることもできます。

①R source (Table) : irisデータ読み込み
今回はRの標準データセットであるirisを使用するので、R sourceを使用してirisのデータをKNIMEテーブルに出力します。コードは以下の通りです。
knime.out <- iris
②R View (Table) : グラフ描画
縦軸 : Sepal.Length 、横軸 : Species の箱ひげ図を描きます。コードは以下の通りです。
#インプットデータがdata.frame形式で 'knime.in' という名前で渡される # 'knime.in'を’df’と定義 df <- knime.in #必要なパッケージを読み込む library(ggplot2) # ggplot2を使って、SpeciesとSepal.Lengthのグラフを作成 p <- ggplot(df, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot() + labs(title = "Sepal Length by Species", x = "Species", y = "Sepal Length") + theme_minimal() # グラフを表示 print(p)
③Image to Table : グラフをテーブルに
グラフをKNIMEテーブル上に出力します。この操作をすることでKNIME上でグラフデータを取り扱えるようになります。
まとめ
今回は、KNIMEとRの連携方法、そしてR Viewノードを使ったグラフ自動描画の手順についてご紹介しました。
データの可視化(グラフ化)を頻繁に行う方には、KNIMEとRを連携させた今回の方法で、グラフ描画を自動化することが非常に役立つと思います。ぜひ参考にして、活用してみてください!

次回は、初心者でも簡単にRスクリプトを書く方法について紹介します!
この記事がお役に立てたなら、ぜひ私の自己紹介記事もチェックしてみてください。
コメント