所以,我正在尝试制作一个由三个不同变量构成的图表网格。我可以很好地生成图形网格,我唯一的问题是标签的放置顺序似乎不正常。以下是我正在做的一个简单示例:
library(ggplot2)
data(mtcars)
qplot(mpg, wt, data=mtcars) + facet_grid(cyl +am ~ vs, labeller = label_both)
产生以下图:
现在,在大多数情况下,情节看起来很棒,但对于右侧的标签,我们看到 cyl 标有"第一个" (即接近绘图)并且 am 嵌套在外面,但是绘制图的方式很明显,小平面显示时 am 嵌套在缸的。
因此,我想更改列出标签的顺序,以便 级别列在 cyl 级别以反映布局。我试图搜索" facet_grid订单标签等#34;或者"嵌套的facet标签命令ggplot2",但我发现的几乎所有结果都与更改给定facet的实际级别的顺序有关,而不是我所描述的问题。另外,我调查了贴标机,但是在确定标签放置后似乎调用了该函数。
感谢您的帮助!
答案 0 :(得分:3)
您看到的标签排序似乎只是label_both()
命令标签的标准方式。如果您在公式中交换变量的顺序,标签也会更改位置,但同时也会重新排序行,这可能不是您想要的:
label_rev <- function(labels, multi_line = TRUE, sep = ": ") {
label_both(rev(labels), multi_line = multi_line, sep = sep)
}
你确实可以使用贴标机来解决这个问题,正如alistaire所建议的那样。以下函数以相反的顺序调用qplot(mpg, wt, data=mtcars) +
facet_grid(cyl + am ~ vs, labeller = label_rev)
标签数据框的列:
textbox1.text
它导致了预期的结果:
button1