第一和最后一跳的规格与scale_x_date痕第一和最后一跳的规格与scale_x_date痕(S

2019-05-12 04:32发布

我希望能够指定出现在由GGPLOT2生产的阴谋第一个和最后刻度标记,而是遇到了一些问题。 下面是一些代码。

#Produce a vector of days 
dateVec <- seq(from = as.Date("2011-11-21"), to = as.Date("2012-11-23"), by = "days")

#Some random values
myData <- rnorm(length(dateVec))

# Plot it
qplot(dateVec, myData) + 
    scale_x_date(breaks = "4 weeks", limits = c(min(dateVec), max=max(dateVec))) + 
    theme(axis.text.x = element_text(size = 10, angle = 45, colour = "black",
          vjust = 1, hjust = 1))

请注意,在日期矢量最小日期是2011-11-21和最大日期是2012年11月23日和我所指明的地积的极限。 然而,剧情似乎被一定量扩展。

有没有办法迫使第一和最后一个刻度线以对应于指定的实际限制scale_x_date

谢谢!

Answer 1:

为了确保轴没有展开,你可以添加参数expand = c(0, 0)scale_x_date()

qplot(dateVec, myData) + 
scale_x_date(breaks = "4 weeks", limits = c(min(dateVec), max = max(dateVec)),
             expand=c(0,0)) +  
theme(axis.text.x  = element_text(size = 10, angle = 45, colour = "black",
      vjust = 1, hjust = 1))

UPDATE

如果您需要与最小和最大日期开始蜱,那么你可以定义自己的休息时间。 为此,我提出矢量break.vec包含最小和最大日期,以及日期,通过它们之间的月份。 然后,使用这种载体来设置场所scale_x_date()

break.vec <- c(as.Date("2011-11-21"),
               seq(from = as.Date("2011-12-01"), to = as.Date("2012-11-01"),
                 by = "month"),
               as.Date("2012-11-23"))

qplot(dateVec, myData) + 
  scale_x_date(breaks = break.vec) +  
  theme(axis.text.x = element_text(size = 10, angle = 45, colour = "black",
                                   vjust = 1, hjust = 1))



文章来源: Specification of first and last tick marks with scale_x_date
标签: r ggplot2