@sugisugi0712

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【R】ggplot2でX軸を固定、Y軸を変更して繰り返し同じグラフを描写する方法

Q&A

Closed

解決したいこと

Rを用いてggplot2でX軸を固定、Y軸を変更して繰り返し同じグラフを描写したいと考えています。
例えば、血中成分A, B, Cの経時変化を示す以下のようなデータフレームがある場合、X軸はDayに固定、Y軸をA,B,Cに変更して繰り返し同じグラフを描写するようなイメージです。
実際には血中成分が100種類程度あり、for構文等で繰り返し描写できればと思います。
Day, A, B, C
1, 11, 12, 14
2, 10, 8, 9
3, 11, 13, 14
4, 12, 10, 10

解決方法を教えていただけますと幸いです。

0 likes

1Answer

こちらで如何でしょうか。
各グラフを見比べやすいようにY軸の幅を統一していますが、不要であれば limits = c(y_min, y_max) 部分を削除してください。

library(ggplot2)

day <- 1:4
A <- c(11, 10, 11, 12)
B <- c(12, 8, 13, 10)
C <- c(14, 9, 14, 10)
data <- data.frame(Day = day, A = A, B = B, C = C)

# 血中成分の最小値, 最大値を取得
y_min <- min(data[,-1])
y_max <- max(data[,-1])
for (col in colnames(data)[-1]) {
  # 血中成分ごとにグラフ描画
  d <- data[, c("Day", col)]
  g <- ggplot(d, aes(x = d[,1], y = d[,2]))
  g <- g + geom_line()
  g <- g + scale_x_continuous(name = "Day")
  g <- g + scale_y_continuous(name = col,
                              # 縦軸の幅は全グラフで統一
                              limits = c(y_min, y_max))
  plot(g)
}
0Like

Comments

  1. @sugisugi0712

    Questioner

    ありがとうございます!描くことができました。for構文の中に一度グラフ描写したいデータのみ抽出する作業を入れるのですね。

Your answer might help someone💌