如何更改ggplot2中一个面的宽度

use*_*624 5 r ggplot2

我有一个多面条形图,其中一个组的成员少于其他组。我可以仅使用设置中存在的组来绘制它scales = "free_x",但刻面与其他刻面的宽度相同,因此条形更宽。这很分散注意力,我认为我无法按原样提交该数字以供出版。我知道 ggplot2 中的分面函数曾经允许您调整各个分面的宽度,但现在似乎不再是这种情况了。

这是一个例子。我想让右手刻面变窄,以便条形与其他条形宽度相同。非常感谢任何帮助。

response<-rnorm(42, mean=10)
factor1<-factor(rep(c("A","B","C"), each=14))
factor2<-factor(rep(c(1,2,3,1,2,3,1,2,3,1,2,3,1,2), times=3))
factor3<-factor(rep(c("X","X","X","Y","Y","Y","X","X","X","Y","Y","Y","Y","Y"),times=3))
factor4<-factor(rep(c(rep(c("27 degrees","30 degrees"), each=6),"33 degrees","33 degrees"), times=3))

data1<-data.frame(response,factor1,factor2,factor3,factor4)


p1<- ggplot(data=data1, aes(x=factor2, y=response, fill=factor1))
p1<- p1+geom_bar(stat="identity")
p1<- p1+facet_grid(~factor4+factor3,scales = "free_x")+theme_bw()
p1<- p1+scale_y_continuous(expand = c(0,0))+theme(strip.background=element_rect( fill="white"))
p1<- p1 + scale_fill_brewer(guide = guide_legend(reverse=TRUE))
p1
Run Code Online (Sandbox Code Playgroud)

这给出:

在此输入图像描述