R:绘制小时数据

R: Plotting hour data

我只是另一个 R 菜鸟,正在为 R 中的日期时间对象苦苦挣扎。当我的代码给我这样的图片时,你能告诉我我的代码有什么问题吗?我希望 x 轴只有小时,没有日期。并确保数据框的小时列不应该像这样 → 2021-07-09 07:30:00。应该是07:30、16:30、18:10等等。观察日期在另一列中。下面是我使用的代码,它在另一个数据框上工作得很好,所以我很困惑。

df$hour <- as.POSIXct(df$hour, format="%H:%M")ggplot(data=df, aes(x=df$hour)) + geom_freqpoly()

正如 stefan 所说,很难确切知道什么可以处理您的数据。但我想你可能想看看 scale_x_datetime。例如:

library(dplyr)
library(ggplot2)

dat <- tibble(
    hour = as.POSIXct(c(
        "2020-01-01 12:00",
        "2020-01-01 13:00",
        "2020-01-01 14:00"
    )),
    y = 1:3
)

dat %>%
    ggplot(aes(x = hour, y = y)) +
        geom_line(group = 1) +
        scale_x_datetime(
            date_breaks = "1 hour",
            date_labels = "%H:%M"
        )

关于更多上下文,当您编写 df$hour <- as.POSIXct(df$hour, format="%H:%M") 时,您实际上并没有格式化该变量,它仍然是一个日期时间对象。 (打印 df$hour 以了解我的意思。)使用 format 函数(带有令人困惑的 format 参数)这样的事情可能会更好:

format(as.POSIXct(df$hour), format = "%H:%M")

但无论如何,我倾向于保留该变量中的所有信息,并且只使用 scale_x_datetime.

在 ggplot 本身中进行格式化

有更多上下文。