【R】秒単位で整理された時系列データをmm:ss形式でグラフプロットする

こんてんつ

時系列データをプロットしたいとき、データは秒で整列されているが、グラフの横軸はmm:ssの表示の方が見やすい場合がある。その時に使える方法を紹介する。

チートシート

コード

dat %>%
  ggplot(aes(x = time, y = value)) +
  geom_line() +
  scale_x_continuous(labels = function(x) sprintf("%02d:%02d", as.integer(floor(x / 60)), as.integer(x %% 60))) +
  labs(x = "Time (mm:ss)",y = "Value")

出力

サンプルデータ

time value
24.73   0.5346
35.25   1.745
40.4    0.978
41.61   1.6122
76.63   1.9926
85.84   4.3768
117.06  2.7012
134.09  3.4118
137.32  3.1764
138.69  3.4138
142.5   3.46
154.26  3.2952
155.73  3.4246
168.1   3.862
192.52  5.1704
197.1   5.152
211.52  6.1304
215.73  4.5746
220.98  6.1996
249.13  7.4226
250.8   6.386
271.21  7.1442
271.72  6.1944
274.44  6.1288
280.4   7.368
281.12  5.9024
282 6.1
284 8.09
293.47  6.5694
296.67  6.7834