R ggplot:如何在不同面上获得相同的条宽
我经常要创建类似下面的情节。结果让我有些恼火的是刻面B中条的位置和大小/(箱)宽度 理想情况下,我希望将杆放置在与面A中c杆相同的标高/高度上,并且面b中剩余的两个“空间”(A和b位于面A中)保持为空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
库(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”,则条的宽度将相同,但结果可能不是您想要的。