当HH超过24时,在R中绘制HH:MM:SS格式的数据

当HH超过24时,在R中绘制HH:MM:SS格式的数据,r,datetime,R,Datetime,我有一个数据集(tt),它由如下值组成: "76:12:49" "74:11:32" "62:39:26" "57:17:17" "43:10:59" "29:06:00" "21:32:30" "16:00:36" "13:31:27" " 9:55:12" " 9:30:34" 我似乎想不出一个方法来绘制这些值。Zoo/chron组合不起作用,因为times(tt)无法处理HH高于23的任何内容 我假设ggplot的时间绘制功能在这里也不起作用,因为strtime在HH大于23的情况下同样

我有一个数据集(tt),它由如下值组成:

"76:12:49" "74:11:32" "62:39:26" "57:17:17" "43:10:59" "29:06:00" "21:32:30" "16:00:36" "13:31:27" " 9:55:12" " 9:30:34"
我似乎想不出一个方法来绘制这些值。Zoo/chron组合不起作用,因为times(tt)无法处理HH高于23的任何内容

我假设ggplot的时间绘制功能在这里也不起作用,因为strtime在HH大于23的情况下同样不起作用


有什么想法吗?

将字符时间读入一个data.frame,
hms
,其中包含
h
m
s
列,然后计算每个列的天数和天数分数。最后绘制数据与天数的对比图:

# test data in character form
ch <- c("76:12:49", "74:11:32", "62:39:26", "57:17:17", "43:10:59", "29:06:00", "21:32:30", "16:00:36", "13:31:27", "9:55:12", "9:30:34")

hms <- read.table(text = ch, sep = ":", col.names = c("h", "m", "s"))
days <- with(hms, h / 24 + m / (24 * 60) + s / (24 * 60 * 60))
plot(seq_along(days) ~ days, ylab = "")
#字符形式的测试数据

在您的例子中,这些时间跨度大于时间戳。您可能需要将它们保留为字符。如果我将它们保留为字符,则无法绘制它们,而不需要对它们进行排序,对吗?是的,您需要创建另一个用于绘制的变量,并使用向量进行标记。将它们全部转换为小时的数字表示形式,例如小时+分钟/60+秒/3600。然后,可以将其打印为数字。或者想象一下,把它们转换成
difftime
谢谢你的帮助。我知道如何在数小时、数天或数分钟内绘制数据。我希望能以他们的方式画出来。
hours <- 24 * days
plot(seq_along(hours) ~ hours, ylab = "")
library(chron)

plot(seq_along(days) ~ days, ylab = "", xaxt = "n")
at <- axTicks(1)
axis(1, at = at, paste(at %/% 1, times(at %% 1)), cex.axis = .8)