時間の経過に伴う一連の測定値があり、それらを R でプロットしたいと考えています。これが私のデータのサンプルです。4 つの時点ごとに 6 つの測定値があります。
values <- c (1012.0, 1644.9, 837.0, 1200.9, 1652.0, 981.5,
2236.9, 1697.5, 2087.7, 1500.8,
2789.3, 1502.9, 2051.3, 3070.7, 3105.4,
2692.5, 1488.5, 1978.1, 1925.4, 1524.3,
2772.0, 1355.3, 2632.4, 2600.1)
time <- factor (rep (c(0, 12, 24, 72), c(6, 6, 6, 6)))
これらのデータのスケールは任意であり、実際には t=0 の平均が 1 になるように正規化します。
norm <- values / mean (values[time == 0])
ここまでは順調ですね。を使用しggplot
て、個々のポイントと、各時点での平均を通る線の両方をプロットします。
require (ggplot2)
p <- ggplot(data = data.frame(time, norm), mapping = aes (x = time, y = norm)) +
stat_summary (fun.y = mean, geom="line", mapping = aes (group = 1)) +
geom_point()
しかし、対数スケールを適用したいのですが、ここから問題が始まります。私がする時:
q <- ggplot(data = data.frame(time, norm), mapping = aes (x = time, y = norm)) +
stat_summary (fun.y = mean, geom="line", mapping = aes (group = 1)) +
geom_point() +
scale_y_log2()
log (1) == 0 であるため、予想されるように、直線は t=0 で 0 を通過しません。代わりに、直線は 0 より少し下の y 軸を横切ります。明らかに、対数変換後ggplot
の平均を適用すると、異なる結果。対数変換前の平均をとってほしい。
ggplot
最初に平均を適用するように指示するにはどうすればよいですか? このグラフを作成するより良い方法はありますか?