R:删除多余的x轴值(ggplot2)

6

我正在使用ggplot2库的条形图,在x轴上有大量数据(在我的例子中是日期),会出现额外的空白值刻度在轴的两端,请问是否有办法去除这些?以下是可重现的代码和图片。 enter image description here

library(ggplot2)
a <- runif(28, 2.0, 7.5)
b <- seq(as.Date("1910/1/1"), as.Date("1910/1/28"), "days")
ds = data.frame(a, b)

p <- 
ggplot(data=ds, aes(b, a), environment = environment()) +  
theme(panel.grid.major.x =  element_blank(), panel.grid.minor =  element_blank(),
      panel.grid.major.y = element_line(color="grey"), 
      panel.background = element_blank(), panel.border = element_rect(fill= NA, colour = "grey")) +
geom_bar(width=.4,stat="identity") + 
xlab(" ") + ylab(" ") +
theme(text = element_text(size=20), axis.text.x = element_text(angle=90), axis.text = element_text(color="black"),
      legend.key = element_rect(fill="white")) +
scale_x_date(breaks = date_breaks("1 day"), labels = date_format("%d.%B %y")) 

print(p)

1
一个不太优雅的解决方案是在 scale_x_date 中添加 limits = range(ds$b) + c(1, -1) - lukeA
2
这可能与scale_x_date中的expand参数有关。将expand常数相对较小会在边缘留下较少的空间,因此没有足够的空间来放置这些额外的轴断点。您可以尝试一下; 在这种情况下,expand = c(.01,.01)似乎看起来不错。 - aosmith
1个回答

1
当我将breaks = b替换为breaks = date_breaks("1 day")时,问题得到解决。同时,现在需要library(scales)来运行您的示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接