2

我有一组计时时间,即两个时间点之间的差异。这些值的范围从略为负到略大于 1。Chron 将这些值显示为天的一小部分,因为其中一些值大于 1。

当我在 ggplot 中绘制这些值时,我尝试使用scale_y_chron()正确注释 y 轴,但scale_y_chron()似乎只在 24 小时内绘制时间。有什么方法可以从 00:00 将轴注释为 HH:MM?

# data:

time_to <- c(0.19305556,0.12083333,0.58402778,0.32986111,0.40486111,
             0.77083333,0.18263889,0.23472222,0.10138889,0.11666667,
             0.47222222,0.14166667,0.15694444,0.24166667,0.16666667,
             0.29166667,0.28194444,0.16875000,0.42777778,0.88750000,
             0.17916667,0.05763889,0.53263889,0.11666667,0.22916667,
             0.75069444,0.98680556,1.29930556,0.78263889,0.73611111,
             0.73958333,1.22708333,0.41319444,0.98402778,1.22500000,
             0.33194444,0.95972222,0.18333333,0.11458333,0.86805556)

# plot:

require(chron)
require(ggplot2)
qplot(y=time_to)

在此处输入图像描述

y 轴理想情况下应显示从 00:00 开始的总小时数,但如果时差大于 24 小时,则默认为天数。

4

1 回答 1

3

time_to只是一个数字向量,因此没有理由认为轴会被数字以外的任何东西标记。如果这些数字代表两个 chron 日期时间之间的差异,并且我们想要 HH:MM 格式,即使大于 24 小时使用自定义标签。利用 chron 一天是 1 所以一小时是 1/24 的事实:

library(ggplot2)

hrs <- seq(0, 30, 5)  # 0, 5, 10, ..., 30
qplot(y = time_to) + 
   scale_y_continuous(breaks = hrs/24, labels = sprintf("%02d:00", hrs))

截屏

于 2015-12-07T20:17:16.667 回答