首页 > 解决方案 > R ggplot构面查找贴标机

问题描述

将数据框用作构面标签的查找表(https://ggplot2.tidyverse.org/reference/labeller.html)的语法是什么?例如:

require(ggplot2)
df <- data.frame(value = c(1,3), variable = letters[c(1,3)])
labels <- data.frame(variable = letters[1:3], label = c("Apple", "Banana", "Cherry"))

这是一次失败的尝试:

ggplot(df, aes(x = "x", y = value)) + geom_col() + facet_grid( ~ variable, labeller = as_labeller(labels))

标签: rggplot2

解决方案


你想要一个命名的字符向量

labels <- data.frame(variable = letters[1:3], 
                     label = c("Apple", "Banana", "Cherry"),
                     stringsAsFactors = F)
ggplot(df, aes(x = "x", y = value)) + geom_col() +
  facet_grid( ~ variable, labeller = as_labeller(with(labels, setNames(label, variable))))

推荐阅读