在ggplot2(facet_grid)中的特定构面之间添加空格

时间:2018-03-06 03:44:09

标签: r ggplot2

我已经能够在所有方面(Alter just horizontal spacing between facets (ggplot2))之间添加垂直空间但是无法在指定方面之间只添加一个空格?

这是一个基于我的真实数据的例子(在真实的情节中,我有叠条):

mydf<-data.frame(year = rep(c(2016,2016,2016,2016,2016,2016,2017,2017,2017,2017,2017,2017),times = 2),
             Area = rep(c('here','there'),times = 12),
             yearArea = rep(c('here.2016','here.2017', 'there.2016','there.2017'), times = 12),
             treatment = rep(c('control','control','control','treat', 'treat','treat'), times = 4),
             response = rep(c('a','b','c','d'), times = 6),
             count = rep(c(23,15,30,20), times = 6))
mycolour<-c("#999999", "#0072B2", "#009E73","#000000")

返回情节:

#default facet spacing 
example<-ggplot(data=mydf, aes(x=treatment, y=count, fill=response)) + 
  geom_bar(stat="identity", width = 0.5) +  
  scale_fill_manual(values = mycolour, name = "Response") + 
  labs (y = "Count") +
  facet_grid(~yearArea) + 
  theme_bw()
example

#spacing between each facet
spacedex<-example + theme(panel.spacing.x=unit(2, "lines"))

spacedex

如何限制仅在第二和第三方面之间添加空间? (在这里.2017和那里.2016)

1 个答案:

答案 0 :(得分:3)

library(grid)
gt = ggplot_gtable(ggplot_build(example))
gt$widths[7] = 4*gt$widths[7]
grid.draw(gt)

enter image description here