R:删除额外的x轴值(ggplot2)

R:删除额外的x轴值(ggplot2),r,ggplot2,axis,R,Ggplot2,Axis,我正在使用带有ggplot2库的条形图,当x轴上的值数(在我的例子中是日期)很高时,轴的开始和结束处会出现额外的空白值标记。请问,有没有办法去掉这些?下面是可复制的代码和图像。 库(ggplot2) a当我将breaks=b替换为breaks=date\u breaks(“1天”)时,问题就解决了。您还需要library(scales)现在运行您的示例。一个丑陋的解决方案是将limits=range(ds$b)+c(1,-1)添加到scale\uxuDate中。这可能与scale\uxuDat

我正在使用带有ggplot2库的条形图,当x轴上的值数(在我的例子中是日期)很高时,轴的开始和结束处会出现额外的空白值标记。请问,有没有办法去掉这些?下面是可复制的代码和图像。

库(ggplot2)

a当我将
breaks=b
替换为
breaks=date\u breaks(“1天”)
时,问题就解决了。您还需要
library(scales)
现在运行您的示例。

一个丑陋的解决方案是将
limits=range(ds$b)+c(1,-1)
添加到
scale\uxuDate
中。这可能与
scale\uxuDate
中的
expand
参数有关。使
expand
常量相对较小,会在边上留下较少的空间,因此没有空间进行这些额外的轴打断。你可以玩一会儿
expand=c(.01,.01)
在这种情况下看起来很正常。
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)