データのお砂場(6) R言語、ChickWeight、ggplot2で見違えた

Joseph Halfmoon

前回、チキンの肥育データ ChickWeight サンプルデータセットを開いてみました。グラフは描いたものの白黒で地味。確かR言語にはもっと「エレガント」なグラフを描ける機能があったのでは?そう思って探して思い出しました ggplot2であります。今回はこれを「インストール」してChickWeightに再挑戦。

※「データのお砂場」投稿順Indexはこちら

ggplot2のインストール

ggplot2は、Tidyverseという data science 向けの大きなRパッケージの一部であるようです。この際ということで、Tidyverse全体をインストールしてしまいました。

何で gg なのという疑問を持っていたのですが、”The Grammar of Graphics”という御本に基いているからみたいです。ggplot2のホームページは以下に。

ggplot2

なお、ここから辿れるGitHubに、多分印刷したらレターサイズの表裏になるであろう「チートシート」がおいてありました。これが中々お役立ちじゃないかと思います(エレガントなプロットツールなのでチートシートもカラフルで分かり易いです。)

Data visualization with ggplot2::CHEAT SHEET

さて、GUIであるRStudioを使わせていただいているので、Packageのインストールは、右下のウインドウのPackageタブのInstallボタンを押せば開始できます。

InstallButton
ボタンを押せば以下のウインドウが現れてきます。入力するのはPackagesの欄だけで済ますが、数文字入力すれば候補となるパッケージ名がずらずらと列挙されるので、簡単に入力できます。

Install_PackageA

ggplot2を使ってさっそくプロット

Installとは別に、毎回のセッションにて、使用するライブラリは宣言が必要みたいです。RStudioはセッションをセーブして再開してくれる機能があるので、それに頼っていると忘れてしまいそうですが。

とりあえずggplot2の基本機能でX軸をTime、Y軸をweight、そしてDiet(餌の種類)毎に色を変えた散布図を描いてもらいました。指令はこんな感じ。

library(ggplot2)
ggplot(data=ChickWeight, aes(Time, weight, color=Diet))+geom_point()

上記の結果がこれ。

CWggplot00前回にのcoplotと比べると、華やかなだけでなく、分かり易いんでないかい(個人の感想です。)

ggplot2のマシマシ・プロット

ggplot2が良いのは、華やかさだけでなく、プロットの途中経過を保存しておいて、後から指令を付け加えていけるところみたいです。グラフを描くと、思っていたのと違う、という件が多いからな。

そこでggplotの指令を変数に保存しておいて、後からfacet(切り口とでも訳すべきか?)を追加してみました。Dietをfacetとして4つの小グラフを描かせてみようという意図です。指令はこんな感じ。

g = ggplot(data=ChickWeight, aes(Time, weight))+geom_point()
g1 = g + facet_wrap(vars(Diet))
g1

結果はこんな感じ。あれあれ、地味な黒丸に戻っちゃいました。

CWggplotFacet_wrap_Dietそこで鳥さんID番号で色変させてみることにいたしました。変数作り直してみましたが。

g2 = ggplot(data=ChickWeight, aes(Time, weight, color=Chick))+geom_point()+facet_wrap(vars(Diet))
g2

鳥さんID番号で、各鳥さん毎の経緯も分かるし、餌の4種類でグラフが分かれておるしで、前回からすると格段の進歩じゃないかと自画自賛。

CWggplotFacet_wrap_Diet2
でもね、肝心のものが抜けていないか。タイトルが。そんなときの追加は簡単。

g3 = g2 + labs(title="ChickWeight")
g3

タイトルを追加したものがこちら。前回のつれないグラフからすると格段に見栄えがようなりました。

CWggplotFacet_wrap_Diet3
ううむ、今後はggplot2だな。coplotごめん。

データのお砂場(5) R言語、ChickWeight、チキンの肥育、生後日数と体重の増加 へ戻る

データのお砂場(7) R言語、DNase、ELISAアッセイって何? へ進む