如何控制显示哪些 facet_wrap 个标签
How to control which facet_wrap labels are displayed
在下面使用 facet_wrap
时,year
和 model
都显示在绘图标签中。
library(tidyverse)
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(year~model)
我们已经用 model
给点上色了,它显示在图例中,所以我们真的不需要在每个方面标签中使用 model
。我们如何从标签中删除 model
?
最简单的方法是调整标签功能,只提取第一个变量的标签。你可以用
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(~year+model, labeller=function(x) {x[1]})
另一种方法是创建一个交互变量,这样您就可以只在一个变量上分面,然后您可以更改标签器以去除第二个值的名称。看起来像这样
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(~interaction(year,model), labeller=as_labeller(function(x) gsub("\..*$", "", x)))
在下面使用 facet_wrap
时,year
和 model
都显示在绘图标签中。
library(tidyverse)
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(year~model)
我们已经用 model
给点上色了,它显示在图例中,所以我们真的不需要在每个方面标签中使用 model
。我们如何从标签中删除 model
?
最简单的方法是调整标签功能,只提取第一个变量的标签。你可以用
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(~year+model, labeller=function(x) {x[1]})
另一种方法是创建一个交互变量,这样您就可以只在一个变量上分面,然后您可以更改标签器以去除第二个值的名称。看起来像这样
mpg %>%
filter(manufacturer=='audi')%>%
ggplot(aes(cty, hwy)) +
geom_point(aes(col = model)) +
facet_wrap(~interaction(year,model), labeller=as_labeller(function(x) gsub("\..*$", "", x)))