Удаление нового разделителя строк в метках facet_wrap

У меня есть следующие данные с несколькими факторами, которые я хочу ggplot с facet_wrap:

set.seed(1)
df <- data.frame(sample=c("c0.A_1","c0.A_2","c1.A_1","c1.A_2","c2.A_1","c2.A_2","c0.B_1","c0.B_2","c1.B_1","c1.B_2","c2.B_1","c2.B_2"),
                 replicate=rep(c(1,2),6),val=vals,min.val=min.vals,low.val=low.vals,max.val=max.vals,high.val=high.vals,
                 group=c(rep("A",6),rep("B",6)),cycle=rep(c("c0","c0","c1","c1","c2","c2"),2),
                 stringsAsFactors = F)


facet.factors <- c("group","cycle")
for(f in 1:length(facet.factors)) df[,facet.factors[f]] <- factor(df[,facet.factors[f]],levels=unique(df[,facet.factors[f]]))

В данном случае у меня есть 2 фактора огранки, но в этом может быть и больше.

Вот как я обычно создаю формулу огранки:

levels.vec <- sapply(facet.factors,function(f) length(levels(df[,f])))
df$col.fill <- Reduce(function(...) paste(..., sep = ":"), df[,facet.factors])
df$col.fill <- factor(df$col.fill,levels=unique(df$col.fill))
facet.formula <- as.formula(paste('~',paste(facet.factors,collapse='+')))

Заговор дает мне это:

require(ggplot2)
ggplot(df,aes_string(x="replicate",ymin="min.val",lower="low.val",middle="val",upper="high.val",ymax="max.val",col=facet.factors,fill=facet.factors))+
  geom_boxplot(position=position_dodge(width=0),alpha=0.5,stat="identity")+
  facet_wrap(facet.formula,ncol=max(levels.vec))+
  labs(x="Replicate",y="Val")+
  scale_x_continuous(breaks=unique(df$replicate))+
  theme_bw()+theme(legend.position="none",panel.border=element_blank(),strip.background=element_blank(),axis.title=element_text(size=8))

введите здесь описание изображения

facet_wrap разделяет метки новой линией между каждым уровнем. Есть ли способ изменить это? разделить с помощью пользовательского разделителя?


person dan    schedule 11.04.2017    source источник
comment
это не столько новая строка, сколько новая ячейка (строка) в макете gtable. Если вам нужен более плотный макет с одной полосой, объединяющей несколько меток фасетов, я полагаю, вам придется написать пользовательскую функцию фасета. (или постобработайте gtable, но это будет грязно).   -  person baptiste    schedule 11.04.2017