Fai*_*sin 5 r ggplot2 facet-wrap facet-grid
使用facet_grid(),在绘制垂直堆叠在单列中的图时,如何将组名称(即灰色条带)放置在图的顶部?
根据我的尝试,当使用 垂直堆叠图时facet_grid(),您不能将条带放在图表的顶部或底部;您只能使用参数将条带放置在图的右侧或左侧switch = c("y", "x", "both")。
我知道facet_wrap()(并且facet_col()来自 ggforce)可以使用参数将条带放置在任何位置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) 的答案的代码就在这里:
可重现的代码:
数据:
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)
Run Code Online (Sandbox Code Playgroud)
用于facet_wrap在垂直绘制图形时将条带置于顶部:
ggplot(dat, aes(letters,value, label = letters)) +
geom_bar(stat="identity") +
facet_wrap(grouping~., dir = "v")
Run Code Online (Sandbox Code Playgroud)
产生图1:
facet_grid与 一起使用switch = "y"将条带置于左侧:
ggplot(dat, aes(letters,value, label = letters)) +
geom_bar(stat="identity") +
facet_grid(grouping~., switch = "y")
Run Code Online (Sandbox Code Playgroud)
产生图2:
facet_grid与switch = "x"将条带放在右侧一起使用:
ggplot(dat, aes(letters,value, label = letters)) +
geom_bar(stat="identity") +
facet_grid(grouping~., switch = "x")
Run Code Online (Sandbox Code Playgroud)
产生图3:
由于没有其他选择,我来到这里寻求帮助。
Mar*_*Blo -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")
Run Code Online (Sandbox Code Playgroud)

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