geom_line

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で描いた折れ線グラフ

複数の折れ線グラフ

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)
ggplot2で描いた複数の折れ線グラフ

折れ線グラフとエラーバー

各サンプルに生物学的複製実験がある場合、平均と標準偏差を計算することができる。このとき、平均を折れ線グラフとして描き、標準偏差をエラーバーとして描くことができる。折れ線グラフとエラーバーを同時に描くとき、両者をあらかじめ計算して、データフレームに保存しておく必要がある。

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)
ggplot2で描いた折れ線グラフにエラーバーを追加する