首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用scale_x_datetime时在x轴刻度线之后开始的条形图

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

Stack Overflow用户
提问于 2018-08-23 21:41:57
回答 1查看 198关注 0票数 1

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

代码示例:

代码语言:javascript
运行
复制
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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 22:06:11

这样如何:

代码语言:javascript
运行
复制
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))向左移动标签,并在scale_x_datetime中使用expand=c(0, .9)来剪切第一个和最后一个轴标签。你可以试一下这两个,看看它是否合适。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51987264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档