如何获得x轴文本以读取'd-m-y h'

问题描述 投票:1回答:1

我正在尝试使用d-m-y h作为我的x轴文本来构建绘图。我已经尝试过并使用bdscale进行了修正(请参见先前的帖子here

理想情况下,我想使用ggplot2实现这一目标,但是我愿意接受其他可能性来完成此任务。

这是我的示例代码:

library(lubridate)
library(tidyverse)
library(bdscale)


s1_date <- dmy_hms("30/09/2019 00:00:00")
s2_date <- dmy_hms("08/10/2019 00:00:00")


df <- data.frame(date = seq(from=as.POSIXct("2012-1-1 0:00", tz="UTC"),
                            to=as.POSIXct("2012-1-3 23:00", tz="UTC"),
                            by="hour"),
                 value = sample(1:75, 72)) 

df %>% 
  ggplot(aes(x = date, y = value)) + 
  geom_col() +
  labs(x = "", y = "") +
  theme(axis.title.x = element_blank(),
        axis.text.x = element_text(angle = 90, hjust = 1))

我只想让x-axis文本读取01-01-2012 00

有什么想法吗?

r ggplot2
1个回答
1
投票

有一个特定的轴功能可以执行此操作。我已经修改了您的代码以包含它。

df %>% 
    ggplot(aes(x = date, y = value)) + 
    geom_col() +
    labs(x = "", y = "") +
    scale_x_datetime(date_breaks = "6 hours",
                     date_labels = "%m/%d/%y %H") +
    theme(axis.title.x = element_blank(),
          axis.text.x = element_text(angle = 90, hjust = 1))

推荐问答