R 在比例x日期时间中设置日期中断时保留第一个和最后一个中断标签
虚拟数据:R 在比例x日期时间中设置日期中断时保留第一个和最后一个中断标签,r,ggplot2,R,Ggplot2,虚拟数据: library(tidyverse) df<-tibble(datetime=seq(as.POSIXct("2019-10-01 12:00:00"),as.POSIXct("2020-10-01 12:00:00"), by="15 min"),value=rnorm(35137,22,sd=1)) %>% mutate(period=case_when( datetime>=&
library(tidyverse)
df<-tibble(datetime=seq(as.POSIXct("2019-10-01 12:00:00"),as.POSIXct("2020-10-01 12:00:00"), by="15 min"),value=rnorm(35137,22,sd=1)) %>%
mutate(period=case_when(
datetime>="2019-10-01" & datetime<="2019-12-31" ~ "Oct 1-Dec 31, 2019",
datetime>"2019-12-31" & datetime<="2020-03-31" ~ "Jan 1-Mar 31, 2020",
datetime>"2020-03-31" & datetime<="2020-06-30" ~ "Apr 1-Jun 30, 2020",
datetime>"2020-06-30" & datetime<="2020-10-01" ~ "July 1-Sept 30, 2020"),
period=factor(period,levels = c("Oct 1-Dec 31, 2019","Jan 1-Mar 31, 2020","Apr 1-Jun 30, 2020","July 1-Sept 30, 2020")))
plots<- map(.x = unique(df$period), ~ df %>%
dplyr::filter(period == .x) %>%
ggplot()+
geom_point(aes(x=datetime,y=value),fill="blue")+
scale_x_datetime(date_labels = "%b-%d-%Y",
date_breaks = "2 weeks",
expand = c(0,0)))
plots[[1]]
库(tidyverse)
df%
突变(周期=情况)(
日期时间>=“2019-10-01”和日期时间“2019-12-31”和日期时间“2020-03-31”和日期时间“2020-06-30”和日期时间%
ggplot()+
几何点(aes(x=日期时间,y=值),fill=“蓝色”)+
缩放日期时间(日期标签=“%b-%d-%Y”,
date_breaks=“2周”,
expand=c(0,0)))
绘图[[1]]
我正在制作多个绘图,并希望概括脚本,以开始和结束x轴标签以及每组的第一个和最后一个记录。我希望从2019年10月1日开始每两周有一个标签。当我使用时,我使用date\u breaks
它会删除第一个和最后一个标签,设置限制不起作用。我不想使用t手动调整标签,因为每个时段都有不同的标签
当我删除展开
和日期\u中断
时,会导致:
scale\u x\u datetime(日期标签=“%b-%d-%Y”)
这是我得到的,但它是按月计算的,而不是每两周计算一次:
那么,根据答案,解决方法就是将中断次数增加到所需的数量:
库(tidyverse)
df%
突变(周期=情况)(
日期时间>=“2019-10-01”和日期时间“2019-12-31”和日期时间“2020-03-31”和日期时间“2020-06-30”和日期时间%
ggplot()+
几何点(aes(x=日期时间,y=值),fill=“蓝色”)+
缩放日期时间(日期标签=“%b-%d-%Y”,
断开=缩放::漂亮的断开(n=10),
扩展=c(0.1,0)))
绘图[[1]]
设置
expand=c(0.1,0)
对你来说足够好吗?在这种情况下,第一个标签将是2019年9月30日,而不是2019年10月1日。很有趣,但不太有趣,我需要它来匹配其他数字并从水年开始。