繁体   English   中英

如何格式化 ggplot2::facet_grid 中的网格标题和条目

[英]How to format grid title and entries in ggplot2::facet_grid

我有一个使用facet_grid()的 plot,我想修改 facet 网格的条目。

考虑以下 MWE:

library(ggplot2)
ggplot(mpg, aes(displ, cty, fill=cyl)) + 
  geom_point() +
  scale_fill_continuous() +
  facet_grid(rows = vars(drv))

我想用字符替换每行右侧的条目4fr (例如c("Case 1", "Case 2", "Case 3")并在右侧添加一个标题框条目(即在灰色框和图例( cyl )之间。

facet_grid的文档对我没有帮助 - 有人可以指出我正确的方向吗?

您必须为facet_grid()中的labeller参数提供标签 function,它使用命名字符向量作为查找表。

library(ggplot2)
ggplot(mpg, aes(displ, cty, fill=cyl)) + 
  geom_point() +
  scale_fill_continuous() +
  facet_grid(rows = vars(drv),
             labeller = as_labeller(c("4" = "Case1", "f" = "Case2", "r" = "Case3")))

reprex package (v0.3.0) 创建于 2020-05-28

编辑:

要使用额外的条带层作为跨越标题,您可以使用facet_nested() (完全免责声明:我构建了那个包)。

library(ggplot2)
library(ggh4x)

ggplot(mpg, aes(displ, cty, fill=cyl)) + 
  geom_point() +
  scale_fill_continuous() +
  facet_nested(rows = vars("title", drv),
             labeller = as_labeller(c("4" = "Case1", "f" = "Case2", 
                                      "r" = "Case3", "title" = "My Title Here")))

reprex package (v0.3.0) 创建于 2020-05-28

如果您不是特别关心条带在那里,您可以使用辅助 y 轴指南。

library(ggplot2)
ggplot(mpg, aes(displ, cty, fill=cyl)) + 
  geom_point() +
  scale_fill_continuous() +
  facet_grid(rows = vars(drv),
             labeller = as_labeller(c("4" = "Case1", "f" = "Case2", "r" = "Case3"))) +
  guides(y.sec = guide_none("My Title Here"))

reprex package (v0.3.0) 创建于 2020-05-28

您还可以考虑向数据中添加一个变异列,如下所示:

library(dplyr)
mpg_2 <- mpg %>%
  mutate(drv_2 = case_when(
    drv == "4" ~ "Case1",
    drv == "f" ~ "Case2",
    drv == "r" ~ "Case3" 
  ))

ggplot(mpg_2, aes(displ, cty, fill=cyl)) + 
  geom_point() +
  scale_fill_continuous() +
  facet_grid(rows = vars(drv_2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM