如何格式化x轴,使其显示为hh:mm:ss?
这是我的一组样本:
structure(list(Catraca = c(1L, 253L, 72L, 49L, 2L, 391L, 53L,
52L, 505L, 206L, 105L, 169L, 180L, 222L, 165L, 192L, 286L, 129L,
337L, 270L), Horario = structure(c(360L, 660L, 1740L, 1800L,
1980L, 1980L, 2280L, 2280L, 6060L, 6660L, 6720L, 7200L, 7260L,
7920L, 8460L, 8460L, 8580L, 8580L, 9000L, 9060L), class = "ITime")), .Names = c("Catraca",
"Horario"), class = c("data.table", "data.frame"), row.names = c(NA,
-20L))
第一列是整数,第二列是ITime类,来自POSIXct属性,因为我只想显示hh:mm:ss。
这就是我试图绘制的方式:
的 qplot(data = b, x = Horario, y = Catraca )
即可。我知道我需要以某种方式格式化 Horario ,但我没有在网上找到它。我需要你的帮助。
注意:
R studio显示此消息Don't know how to automatically pick scale for object of type ITime. Defaulting to continuous.
答案 0 :(得分:1)
ITime
是特定于data.table
包的类,因此qplot()
不知道如何处理它(并且仅对基础整数值起作用)。
我不认为基地R只有一个时间课程,所以你可能需要使用一个包。 chron
包可以作为here使用,尽管ggplot2可能会更好地与hms
package一起使用,因为它是tidyverse的一部分。
编辑。
b$time <- as.POSIXct(paste0("2017-09-28 ", b$Horario))
qplot(data = b, x = time, y = Catraca)
然而,除非经过的总时间非常小,否则我怀疑它会显示秒数,因为它会根据更大的圆形时间单位(例如,小时,半小时)选择轴刻度/标签。
如果您真的想要自定义轴标记和标签的显示方式,最简单的方法是从qplot()
切换到ggplot()
。
答案 1 :(得分:1)
您可以发布更好的数据示例吗?当我尝试将其设为data.frame时,我收到错误消息。
对于这种问题,一个简单的解决方法是将时间和日期设为POSIXct类型,但是给它所有相同的日期。通常,绘图程序将仅显示轴上的时间,并且它将忽略日期。