R ggplot:如何在不同面上获得相同的条宽

R ggplot:如何在不同面上获得相同的条宽,r,ggplot2,facet-wrap,R,Ggplot2,Facet Wrap,我经常要创建类似下面的情节。结果让我有些恼火的是刻面B中条的位置和大小/(箱)宽度 理想情况下,我希望将杆放置在与面A中c杆相同的标高/高度上,并且面b中剩余的两个“空间”(A和b位于面A中)保持为空 库(tidyverse) df% ggplot()+ geom_bar(aes(x=单位, y=值), stat=“identity”)+ 面_包裹(变量(组), scales=“free_y”)+ coord_flip() 由(v0.3.0)于2020年5月26日创建 我知道我可以使用sca

我经常要创建类似下面的情节。结果让我有些恼火的是刻面B中条的位置和大小/(箱)宽度

理想情况下,我希望将杆放置在与面A中c杆相同的标高/高度上,并且面b中剩余的两个“空间”(A和b位于面A中)保持为空

库(tidyverse)
df%
ggplot()+
geom_bar(aes(x=单位,
y=值),
stat=“identity”)+
面_包裹(变量(组),
scales=“free_y”)+
coord_flip()

由(v0.3.0)于2020年5月26日创建

我知道我可以使用
scales=“free”
或使用
patchwork
cowplot
包等。但据我所知,这些方法都不会产生预期的结果


有什么想法吗?非常感谢

我能想到的唯一方法是硬编码条的宽度:

ggplot(df, aes(x = unit, y = value))+
  geom_col(width = c(0.9, 0.9, 0.9, 0.9, 0.35)) +
  facet_wrap(vars(group), scales = 'free_y')+
  coord_flip()

非常感谢!这已经解决了一个问题,而不考虑硬编码的缺点。关于如何修改条的位置(使其与刻面A中的“c”条对齐)有何想法?也许有点像创建一些值为NA的虚拟类别(e,f)并在刻面B中省略它们的轴标签?是的,你可以尝试这种策略,我没有更好的主意。如果这样做有效,您可能也不需要再调整宽度;如果您执行scales=“free_x”,则条的宽度将相同,但结果可能不是您想要的。