在 ggplot2 中绘制白天(没有日期)

Plotting daytime (without date) in ggplot2

我想在 ggplot2 中绘制数值向量与白天 (%H:%M) 的散点图。

我明白了

as.POSIXct(dat$daytime, format = "%H:%M")

是格式化我的时间数据的方法,但输出向量仍将包含一个日期(今天的日期)。因此,轴刻度将包括日期(3 月 22 日)。

ggplot(dat, aes(x=as.POSIXct(dat$daytime, format = "%H:%M"), y=y, color=sex)) +
geom_point(shape=15,
position=position_jitter(width=0.5,height=0.5))

有没有办法完全去掉日期,尤其是在绘图轴上? (我在留言板上找到的所有信息似乎都指的是旧版本的 ggplot,现在参数已经失效 date_format)

可以给scale_x_datetime()labels参数提供一个函数或者使用date_label参数:

# create dummy data as OP hasn't provided a reproducible example
dat <- data.frame(daytime = as.POSIXct(sprintf("%02i:%02i", 1:23, 2 * (1:23)), format = "%H:%M"),
                 y = 1:23)
# plot
library(ggplot2)
ggplot(dat, aes(daytime, y)) + geom_point() + 
  scale_x_datetime(labels = function(x) format(x, format = "%H:%M"))

编辑:或者,您可以使用 date_label 参数(感谢 aosmith for the )更简洁。

ggplot(dat, aes(daytime, y)) + geom_point() + 
  scale_x_datetime(date_label = "%H:%M")