在绘制垂直堆叠的图形时,如何将facet_grid中的条带放置在图的顶部 - 类似于facet_wrap中的position.strip =“top”?

问题描述 投票:0回答:2

使用

facet_grid()
,在绘制垂直堆叠在单列中的图时,如何将组名称(即灰色条)放置在图的顶部?

根据我的尝试,当垂直堆叠图时,使用

facet_grid()
,你不能将条带放在图表的顶部或底部;您只能使用
switch = c("y", "x", "both")
参数将条带放置在图的右侧或左侧。

我知道

facet_wrap()
(以及来自 ggforce 的
facet_col()
)可以使用
strip.position = c("top", "bottom", "left", "right")
参数将条带放置在任何位置,无论图形如何绘制:垂直或水平。我使用
facet_wrap()
生成了下面的图 1(代码位于可复制代码部分)。

但是,我希望能够使用

facet_grid()
而不是facet_wrap 生成下面的图(条带位于“顶部”)。

图 1:我希望能够使用

facet_grid()

绘制此图

理想情况下,如果可以扩展 switch 参数或者可以将

strip.position
参数添加到
facet_grid()
中,以便能够将条带放在顶部,那就太好了。我尝试自己尝试更改
facet_grid()
facet_wrap()
函数的源代码,但无法弄清楚。

我不简单地使用

facet_wrap()
函数的原因是因为不幸的是它没有
space="free"
参数,该参数在
facet_grid()
中可用,并且在我的应用程序中至关重要。

下面是一个可重现的示例,稍作修改,取自 Brandon Bertelsen 答案的代码here

可复制代码:

数据:

dat <- data.frame(value=runif(30)*10,
                  grouping=c(rep("Group 1",10),
                             rep("Group 2",10),
                             rep("Group 3",10)),
                  letters=rep(LETTERS[1:10], 3)

垂直绘制图表时,使用

facet_wrap
在顶部获取条带:

ggplot(dat, aes(letters,value, label = letters)) + 
  geom_bar(stat="identity") + 
  facet_wrap(grouping~., dir = "v")

产生图1:

使用

facet_grid
switch = "y"
将条带置于左侧:

ggplot(dat, aes(letters,value, label = letters)) + 
  geom_bar(stat="identity") + 
  facet_grid(grouping~., switch = "y")

产生图2:

使用

facet_grid
switch = "x"
将条带置于右侧:

ggplot(dat, aes(letters,value, label = letters)) + 
     geom_bar(stat="identity") + 
     facet_grid(grouping~., switch = "x")

产生图3:

在没有其他选择的情况下,我到这里寻求帮助。

r ggplot2 facet-wrap facet-grid
2个回答
0
投票

ggforce::facet_col() 会做到这一点。它有 strip.position 参数以及比例和空间参数


-1
投票

这就是你想要的吗?然后把

sales = 'free'
去掉即可。

library(ggplot2)

dat <- data.frame(value=runif(26)*10,
                  grouping=c(rep("Group 1",10),
                             rep("Group 2",10),
                             rep("Group 3",6)),
                  letters=LETTERS[1:26])

ggplot(dat, aes(letters,value, label = letters)) + 
  geom_bar(stat="identity") + 
  facet_wrap(grouping~., dir = "v")

reprex 包于 2020-06-13 创建(v0.3.0)

© www.soinside.com 2019 - 2024. All rights reserved.