R ggplot扩展了类别x轴的范围

时间:2013-05-28 09:12:28

标签: r ggplot2

如果我的数据框类似于以下

a=data.frame(year=paste('FY',2001:2012,sep='.'),values=rnorm(12))
library(ggplot2)

以下图表有效

ggplot(a,aes(x=year,y=values,group=1))+geom_line() 

但是下面没有。

ggplot(a,aes(x=year,y=values,group=1))+geom_line() +xlim(0,13)

如何扩展具有类别轴而非数字轴的ggplot数据的限制?

2 个答案:

答案 0 :(得分:7)

您可以使用scale_x_discretelimits参数通过c将这些级别与原始级别相加来添加额外级别:

ggplot(a,aes(x=year,y=values,group=1))+
       geom_line() + 
       scale_x_discrete(limits=c(levels(a$year),"FY.2013"))

答案 1 :(得分:4)

您可以使用NA添加新因子来扩展x范围。这有点棘手,但它完成了这项工作。我希望别人能得到更好的解决方案。

b=data.frame(year=paste('FY',2013,sep='.'),
               values=NA)
a <- rbind(a,b)
ggplot(a,aes(x=year,y=values,group=1))+geom_line()

enter image description here