使用scale_x_datetime时在x轴刻度线之后开始的条

时间:2018-08-23 13:41:57

标签: r ggplot2

当我使用条形图绘制小时数据时,条形图被X点的X轴刻度线除以。数据对应于6-7点,7-8点,依此类推。 我希望每个小节都从x点开始而不是从x-0:30分钟开始。

enter image description here

代码示例:

install.packages("nycflights13")
library(nycflights13)
data <- flights %>% select(time_hour, hour) %>% 
                    mutate(flightdate = floor_date(time_hour, "day")) %>% 
                    filter(flightdate == as_date("2013-01-01")) %>% group_by(flightdate,hour) %>% tally() %>%
                    mutate(flightdatetime = as_datetime(paste(flightdate + hours(hour)))) %>%
                    select(flightdatetime,n)

ggplot() +
  geom_col(aes(x=flightdatetime, y = n), 
           data = data, color = "black", fill = "black") +
  ggplot2::scale_x_datetime(labels = date_format("%H:%M", tz = "Europe/Berlin"), date_breaks = "1 hour")  +
  theme_minimal() + labs(title ="Flights per hour")

1 个答案:

答案 0 :(得分:0)

如何?

ggplot() +
      geom_bar(aes(x=flightdatetime, y = n),stat="identity",
               data = data, color = "black", fill = "black") +
      ggplot2::scale_x_datetime(labels = date_format("%H:%M", tz = "Europe/Berlin"), date_breaks = "1 hour", expand=c(0, .9))  +
      theme_minimal() + labs(title ="Flights per hour") +
      theme(axis.text.x = element_text(hjust=1.5))

我使用theme(axis.text.x = element_text(hjust=1.5))将标签向左移动,并使用expand=c(0, .9)内的scale_x_datetime切割了第一和最后一个轴标签。 您可以玩这两个,看看是否合适。

enter image description here