[英]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))
我想用字符替换每行右侧的条目4
、 f
和r
(例如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.