『【RStudio】RStudioを使う』シリーズでは、RStudioを使ってデータの統計処理、グラフの描画をしていきます。
第九弾の今回は、"tidyverse"パッケージの"ggplot2"を使ってドットプロットを描画していきます。
グラフを描くのに必要なデータフレームの形にして、ドットプロットを書いてきましょう。
第二弾で書いたフローチャートの「ココ!」の部分です。
目指すグラフの形はこちらに記載しています。
RStudioのインストール方法はこちらをご覧ください。
この記事では、細胞の核を染めた写真をImageJで解析した結果を比較していくのを目的としています。
その第一歩として、手動で計数した結果とImageJマクロを使って計数した結果に差があるのかどうか?をRを使って検定します。
ggplot2でグラフを描くために"tidy data"を作る
R上やggplot2でグラフを描く時には、Excelで作っているようなデータではうまくグラフが描けません...
ggplot2が入っている"tidyverse"パッケージの名前にもなっている"tidy"なデータを作らないと描画ができないのです...
そもそも、"tidy"なデータとはなんでしょう?
"tidy"を辞書で引いてみると、『きちんとした、こぎれいな、整然とした』という意味があります。
"tidy data"は「整然データ」と訳され、ニュージーランドの統計学ハドリー・ウィッカム博士によって提唱されました。(ハドリー・ウィッカム博士はRStudioを開発したメンバーの一人です!)
具体的にどんなデータが"tidy data"なのか見て見ましょう。
左側はExcelでグラフを描くときによく使うデータの形ではないでしょうか?こっちは"messy data"と言われggplot2ではグラフをうまく描けません。
右側が"tidy data"であまり見慣れないし、行数が長くなるので見にくい感じがします。が、こちらが"tidy data"でggplot2でグラフを描く時にはこのようなデータの形を使って行きます。
今、準備できているデータの形はこちら。
この二つを縦に並べて行きます。
"dplyr"のデータフレームを縦に結合する"bind_row"関数を使って行きましょう。
bind_row関数の使い方はこちら。
実際に使って見ましょう。
グラフを描くための"tidy data"ができました。
ggplot2でドットプロットを描く
"tidyverse"パッケージのggplot2を使ってドットプロットを書いてきましょう。
使うデータは上の項目で作った"df"を使って行きます。
ggplot2でドットプロットを描く関数は"geom_point"です。
一連の使い方は、ggplot2の"geom_point"ページに書いてあります。
ggplot()の宣言の後に、"+"を使ってグラフの要素を加えて行きます。
"p1"にグラフの描画を入れていきます。
p1を実行するとグラフが描けました。
ドットプロットが描けましたが、methodごと(手動か、マクロか)の違いがよくわかりません。
methodごとに色を変えてみるとどうでしょう。
"aes()"(グラフの修飾)の部分のcolorで色を、shapeで形を変えることができます。"method"にするとmethodごとに変えられます。
点が小さいので、ドットのサイズを大きくして見ましょう。
ドットのサイズは、"geom_point"内の引数で変更することができます。
同じX軸の位置にあると、"method"ごとの違いがよくわからないですよね。
"facet_wrap()"に"~condition"にすると、controlとtreatedに分けて手動、マクロのデータを別々にプロットすることができるようになります。
これで、controlとtreatedで手動とマクロで計数した結果がどのように違うのかをみることができます。
一つ一つのデータプロットごとに違いを見るために、サンプルごとに色を分けて見ましょう。
ggplot2のデフォルトの色でも良いのですが、ちょっと見にくいので"scale_color_viridis_d()"で色を変えてみます。
ドットプロットは描けるようになりました。
次回は、これに対応するデータごとに線を入れて行きたいと思います。