gpt4 book ai didi

r - 在 facet_grid 中订购嵌套的 facet 标签

转载 作者:行者123 更新时间:2023-12-01 00:42:59 26 4
gpt4 key购买 nike

所以,我试图制作一个由三个不同变量构成的图网格。我可以很好地生成图网格,我唯一遇到的问题是标签的放置顺序似乎不正常。这是我正在做的一个简单的例子:

library(ggplot2)
data(mtcars)
qplot(mpg, wt, data=mtcars) + facet_grid(cyl +am ~ vs, labeller = label_both)

产生以下情节:

enter image description here

现在,在大多数情况下,情节看起来很棒,但是对于右侧的标签,我们看到 cyl 被标记为“第一个”(即靠近情节)并且 am 嵌套在外面,但是情节的方式是布局,很明显,facet 显示为 am 嵌套在 cyl 中。

因此,我想更改列出标签的顺序,以便在 cyl 级别中列出 am 级别以反射(reflect)布局。我试图搜索诸如“facet_grid order labels”或“nested facet label order ggplot2”之类的东西,但我发现的几乎所有结果都与更改给定方面的实际级别的顺序有关,而不是问题我已经描述过了。此外,我研究了对贴标机的修补,但似乎在确定标签的位置后会调用该函数。

谢谢你的帮助!

最佳答案

您看到的标签顺序似乎只是 ggplot 的标准方式。订购标签。如果您交换公式中变量的顺序,标签也会改变位置,但这同时也会重新排列行,这可能不是您想要的:

qplot(mpg, wt, data=mtcars) +
facet_grid(am + cyl ~ vs, labeller = label_both)

enter image description here

正如 alistaire 所建议的那样,您确实可以使用贴标机来解决此问题。以下函数调用 label_both()标签数据框的列以相反的顺序排列:
label_rev <- function(labels, multi_line = TRUE, sep = ": ") {
label_both(rev(labels), multi_line = multi_line, sep = sep)
}

它导致了预期的结果:
qplot(mpg, wt, data=mtcars) +
facet_grid(cyl + am ~ vs, labeller = label_rev)

enter image description here

关于r - 在 facet_grid 中订购嵌套的 facet 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36207032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com