在facet_grid上下文中为ggplot2中的scale_x_date设置限制

时间:2014-10-28 14:34:34

标签: r ggplot2 facet-wrap

我有一个名为" a"的数据框。 as:

             date individus annee
80 2013-07-23         0  2013
77 2013-07-12         0  2013
63 2013-05-13         7  2013
72 2013-06-25         2  2013
7  2011-04-19        20  2011
58 2013-04-23         6  2013
4  2011-04-11         7  2011
52 2012-07-03         0  2012
56 2012-08-06         9  2012
6  2011-04-15         0  2011
38 2012-05-02         8  2012
67 2013-05-28         1  2013
66 2013-05-24         0  2013
59 2013-04-26        46  2013
73 2013-06-28         9  2013
74 2013-07-02         0  2013
22 2011-06-14        44  2011
70 2013-06-17         0  2013
41 2012-05-11         0  2012
14 2011-05-13         6  2011
42 2012-05-15         0  2012
27 2011-07-18         0  2011
18 2011-05-26         0  2011
36 2012-04-13        39  2012
31 2011-07-29        12  2011
55 2012-07-13        25  2012
49 2012-06-14        17  2012
50 2012-06-18        69  2012
51 2012-06-25        65  2012
57 2013-04-19        41  2013

我想使用ggplot2绘制此数据,使用此代码在annee上使用whit facet_grid

plot<-ggplot(data=lob.df)+
#   geom_point(aes(x=date, y=individus))+
  geom_smooth(aes(x=date, y=individus, colour=annee))+
  labs(x="Date",y="Nombre d'individus")+
  scale_colour_discrete(name="Année")+
  facet_grid(.~annee)

怎么给我这个:

ggplot graph with facet_grid

我想删除所有空白数据...所以我玩过scale_y_date,但我无法减少图限制:-S

1 个答案:

答案 0 :(得分:1)

您可以将scales中的facet_grid参数设置为"free_x",如下所示:

plot<-ggplot(data=df)+
  #   geom_point(aes(x=date, y=individus))+
  geom_smooth(aes(x=date, y=individus, colour=annee))+
  labs(x="Date",y="Nombre d'individus")+
  facet_grid(.~annee,scales="free_x")
##
print(plot)

enter image description here

我不得不稍微改变你的情节的美学,因为你的代码没有在我的机器上运行(我没有使用最新版本的R),而是使用facet_grid(.~annee,scales="free_x") 应该仍然适合你。

数据:

df <- read.table(
  text="             date individus annee
80 2013-07-23         0  2013
77 2013-07-12         0  2013
63 2013-05-13         7  2013
72 2013-06-25         2  2013
7  2011-04-19        20  2011
58 2013-04-23         6  2013
4  2011-04-11         7  2011
52 2012-07-03         0  2012
56 2012-08-06         9  2012
6  2011-04-15         0  2011
38 2012-05-02         8  2012
67 2013-05-28         1  2013
66 2013-05-24         0  2013
59 2013-04-26        46  2013
73 2013-06-28         9  2013
74 2013-07-02         0  2013
22 2011-06-14        44  2011
70 2013-06-17         0  2013
41 2012-05-11         0  2012
14 2011-05-13         6  2011
42 2012-05-15         0  2012
27 2011-07-18         0  2011
18 2011-05-26         0  2011
36 2012-04-13        39  2012
31 2011-07-29        12  2011
55 2012-07-13        25  2012
49 2012-06-14        17  2012
50 2012-06-18        69  2012
51 2012-06-25        65  2012
57 2013-04-19        41  2013")
##
df$date <- as.Date(df$date)
df$individus <- as.numeric(df$individus)
df$annee <- as.numeric(df$annee)