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

R 如何更改ggplot2中一个面的宽度,r,ggplot2,R,Ggplot2,我有一个平面条形图,其中一个组的成员比其他组少。我可以通过设置scales=“free_x”仅使用存在的组来绘制,但刻面与其他刻面的宽度相同,因此条形图更宽。这会分散我的注意力,我认为我无法将这个数字提交出版。我知道ggplot2中的刻面功能用于允许您调整各个刻面的宽度,但情况似乎不再如此 这里有一个例子。我想让右手面更窄,这样的酒吧是相同的宽度与其他人。非常感谢您的帮助 response<-rnorm(42, mean=10) factor1<-factor(rep(c("A","

我有一个平面条形图,其中一个组的成员比其他组少。我可以通过设置
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

responseadd
space=“free_x”
内部
facet_网格
。或者,如果您想强调缺少“缺失”条的数据,请执行
p1+scale_x_离散(drop=FALSE)
。此外,您不需要在每行更新
p1
。您可以将所有语句串在一起:
p1=ggplot(data=data1,aes(x=factor2,y=response,fill=factor1))+geom_bar(stat=“identity”)+…
等等。谢谢!问题解决了。我们中的一些人没有,但你不能做出最适合你的选择,除非你知道这两种选择都可用。