Rで作る論文の図(ggplot2)〜その①〜

大学院



はじめに

論文において図は非常に大事で、読む側としては綺麗な図ほど目につき、時間がない時は図だけからその論文の内容を理解しようとします。

データの整理自体はExcelを利用する人も多いと思いますが、Excelの図は味気ないですし、格好良いとは言えません(※個人的感想)。

ビジュアル的に格好良いと言われているのが「R」の「ggpot2」です。

「R」はフリーソフトであり、とても使いやすいです。

今回は「ggplot2」による図の作成についてまとめました。

Rのインストール

私は普段からPythonをJupyter labで使用しているので、RもJupyter labで作動するように環境を構築します。

hl@MacBook ~ % conda create -n r_env python=3.7
hl@MacBook ~ % conda activate r_env

まずは必要そうなものをインストール

※Python 3.9、3.8で作るとエラーになりました。PythonとRのバージョン依存関係とかある?

hl@MacBook ~ % conda install -c r r r-irkernel r-essentials rstudio

ここで、「-c r」は「Anaconda cloud」のチャンネルを指定しています。次の「r」が「R言語」自体。「r-irkernel」が、jupyterにR言語を認識させる。「rstudio」でRstudioをインストールします。

hl@MacBook ~ % conda install jupyter jupyterlab

Jupyter labもインストールし、ここまできたら、Jupyter labを起動してそこから始められます。

※と思ったらエラー出まくりで、どうやら自分の場合xcodeのinstallが必要だったよう

hl@MacBook ~ % xcode-select --install

これでめでたく使えます。アップグレードしたらxcode消えるのか?

ggplot2のを使ってみる〜基本編〜

r-essentialsで「ggplot2」もインストールされているのでそのまま使えます。

library(ggplot2)

同じく、「iris」のデータも入っているので、irisをプロットしてみます。

g <- ggplot(data=iris, mapping=aes(x=Sepal.Width, y=Sepal.Length, color=Species))
g <- g + geom_point()
plot(g)

ここで、「geom_point()」は散布図でプロットするということで、ggplotにこれをプラスすることで描画できます。

次は、適当なデータを作ってプロットしてみます。身長と体重を例にしています。

x <- data.frame(
    weight = c(55, 50, 84, 42, 65, 75, 49, 58, 61),
    height  = c(160, 172, 187, 154, 148, 176, 164, 171, 174)
)

g <- ggplot(data=x, mapping=aes(x = weight, y = height))
g <- g + geom_point()
plot(g)

さらに回帰直線も描いてみます。

g <- g + geom_smooth(method = "lm")
plot(g)

lmはLinear Modelです。

ggplot2を使ってみる〜実践編〜

現実的にはcsvファイルからデータを読み込む形とします。

ここでは、わかりやすくするためにirisのデータを使います

下記からダウンロードさせてもらいました。

iris.csv
GitHub Gist: instantly share code, notes, and snippets.
g <- ggplot(x, aes(x=sepal.width, y=sepal.length, color= variety))
g <- g + geom_point(size = 3, alpha = 0.7)
g <- g + theme_classic(base_size=15, base_family = "Helvetica", base_line_size = 1)
g <- g + labs(title="iris", x="Sepal.Width", y="Sepal.Length", colour = "Species", size=20, face="bold.italic")
plot(g)
ggsave(file="point_plot.png", width = 5, height = 5)

1行目はこれまでと同様です。

2行目も同様ですが、散布図のポイントの「size」でサイズを指定して、「alpha」で透過性を設定しました。

3行目で図のスタイルを指定します。デフォルトがtheme_gray()です。ここでは自分的におすすめなtheme_classicで表示しました。「base_size」が文字サイズ、「base_family」が文字のフォント、「base_line_size」が線のサイズです。

4行目がラベルの設定です。

そのほかのテーマもお示ししておきます。お好みでお使いください。

今回はここまでとします。次回以降でさらにアレンジを加えていきます。

タイトルとURLをコピーしました