相关疑难解决方法(0)

ggplot2跨越组中的嵌套构面

我遇到了一种情况,我希望创建一个由三个分组变量构成的图.要做到这一点,我会简单地使用facet_grid(f1 ~ f2 + f3),但问题是f2的标签是多余的,并且让它们跨越f3嵌套的f3的方面会更好.

MWE:

library('tibble')
library('ggplot2')
df <- tribble(
  ~x, ~y, ~f1, ~f2, ~f3,
  0.5, 0.5, "a", "a", "a",
  0.5, 0.5, "b", "a", "a",
  0.5, 0.5, "a", "b", "a",
  0.5, 0.5, "b", "b", "a",
  0.5, 0.5, "a", "a", "b",
  0.5, 0.5, "b", "a", "b",
  0.5, 0.5, "a", "b", "b",
  0.5, 0.5, "b", "b", "b"
)


p <- ggplot(df, aes(x = x, y = y)) +
  geom_point() +
  facet_grid(f1 ~ f2 + f3)
Run Code Online (Sandbox Code Playgroud)

嵌套小平面图的MWE

同样,我希望将f2的标签组合在一起,这样它们就不那么多余了.

编辑:这与其他问题的不同之处在于,它询问如何使用现有分组修改构面而不是添加新构图.

r facet ggplot2

15
推荐指数
2
解决办法
4274
查看次数

将小平面标题注释为小平面上的条带

我想在一个刻面的情节中添加一个方面标题作为条带ggplot2.我的MWE抛出一个错误.任何帮助将受到高度赞赏.谢谢

library(ggplot2)
library(gtable)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p <- p + facet_grid(. ~ cyl)


# get gtable object
Plot1 <- ggplot_gtable(ggplot_build(p))
# add label for top strip
Plot1 <- gtable_add_rows(Plot1, Plot1$heights[[3]], 2)
Plot1 <- gtable_add_grob(Plot1,
  list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
  textGrob("Cyl", gp = gpar(col = gray(1)))),
  3, 4, 3, 10, name = paste(runif(2)))

# add margins
Plot1 <- gtable_add_rows(Plot1, unit(1/8, "line"), 2)

# draw it
grid.newpage()
print(grid.draw(Plot1))
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 gtable

14
推荐指数
1
解决办法
2348
查看次数

标签 统计

facet ×2

ggplot2 ×2

r ×2

gtable ×1