ggplot2 パッケージの geom_line
関数は、線グラフを描く関数である。geom_line
関数を利用して折れ線グラフを描く例をいくつか紹介する。
折れ線グラフ
ggplot2 を使って、簡単な折れ線グラフを描く方法を示す。ラットの体重を 10 日間続けて記録した仮想データを使用して、x 軸に時間、y 軸にラットの体重を折れ線グラフで描く例を示す。
library(ggplot2)
library(ggsci)
x <- data.frame(
day = 1:10,
weight = c(120, 135, 145, 158, 173, 184, 198, 214, 209, 210)
)
g <- ggplot(x, aes(x = day, y = weight))
g <- g + geom_line()
plot(g)

複数の折れ線グラフ
ggplot2 を使って、複数の折れ線グラフを描く方法を示す。まず、仮想データとして、5 匹のラットにそれぞれ A 餌、B 餌、C 餌、D 餌、E 餌を与えて、10 日間の体重を測定したデータを、行列型で作成する。次に、この行列型を ggplot2 が取り扱いやすいように melt
関数で変形してから、折れ線グラフを描く。与えた餌別に色を塗り替えたいので、ggsci のカラーパレットを呼び出して使う。
library(ggplot2)
library(ggsci)
library(reshape2)
x <- matrix(c(120, 118, 123, 120, 121, 119, 118, 121, 120, 120,
121, 135, 145, 158, 173, 184, 198, 214, 209, 212,
121, 130, 141, 148, 157, 168, 177, 189, 201, 210,
119, 120, 120, 123, 125, 127, 141, 163, 180, 224,
120, 128, 137, 144, 153, 163, 171, 179, 187, 199), ncol = 5)
rownames(x) <- 1:10
colnames(x) <- c("A", "B", "C", "D", "E")
y <- melt(x)
colnames(y) <- c("day", "treat", "weight")
g <- ggplot(y, aes(x = day, y = weight, color = treat))
g <- g + geom_line()
g <- g + scale_color_nejm()
plot(g)

折れ線グラフとエラーバー
各サンプルに生物学的複製実験がある場合、平均と標準偏差を計算することができる。このとき、平均を折れ線グラフとして描き、標準偏差をエラーバーとして描くことができる。折れ線グラフとエラーバーを同時に描くとき、両者をあらかじめ計算して、データフレームに保存しておく必要がある。
library(ggplot2)
library(ggsci)
x <- data.frame(
date = c(1, 2, 3, 4, 5,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5),
treat = c("A", "A", "A", "A", "A",
"B", "B", "B", "B", "B",
"C", "C", "C", "C", "C"),
mean = c(200, 203, 193, 193, 187,
192, 211, 223, 232, 243,
198, 200, 201, 204, 203),
sd = c(4.2, 3.1, 3.2, 3.6, 3.5,
4.1, 3.5, 3.6, 4.0, 4.3,
4.2, 4.4, 4.3, 4.3, 4.1)
)
g <- ggplot(x, aes(x = date, y = mean, color = treat))
g <- g + geom_line()
g <- g + scale_color_nejm()
g <- g + geom_errorbar(aes(ymin = mean - sd, ymax = mean + sd, width = 0.3))
plot(g)
