当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R ggplot2 labeller 构建标签规范


此函数可以轻松地将不同的贴标机分配给不同的因子。贴标器可以是一个函数,也可以是用作查找表的命名字符向量。

用法

labeller(
  ...,
  .rows = NULL,
  .cols = NULL,
  keep.as.numeric = deprecated(),
  .multi_line = TRUE,
  .default = label_value
)

参数

...

形式为 variable = labeller 的命名参数。每个标签器都会传递给 as_labeller(),并且可以是查找表、获取和返回字符向量的函数,或者只是一个标签器函数。

.rows, .cols

整个边距(行或列)的贴标机。它被传递给as_labeller()。设置 margin-wide 贴标机时,请确保不要在 ... 中提及属于边距的任何变量。

keep.as.numeric

所有提供的标签器和on-labeller函数应该能够使用字符标签。

.multi_line

是否在单独的行上显示多个因子的标签。这被传递给贴标器函数。

.default

未指定变量的默认标签器。也可与查找表或非标签函数一起使用。

提供给facet_grid()facet_wrap() 的贴标器函数

对于参数 labeller

细节

对于函数,如果贴标器具有类 labeller ,则它会直接应用于标签的 DataFrame 。否则,它将应用于标签 DataFrame 的列。然后使用 .default 参数中指定的函数处理数据帧。这旨在与采用字符向量的函数一起使用,例如 Hmisc::capitalize()

也可以看看

例子

# \donttest{
p1 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()

# You can assign different labellers to variables:
p1 + facet_grid(
  vs + am ~ gear,
  labeller = labeller(vs = label_both, am = label_value)
)


# Or whole margins:
p1 + facet_grid(
  vs + am ~ gear,
  labeller = labeller(.rows = label_both, .cols = label_value)
)


# You can supply functions operating on strings:
capitalize <- function(string) {
  substr(string, 1, 1) <- toupper(substr(string, 1, 1))
  string
}
p2 <- ggplot(msleep, aes(x = sleep_total, y = awake)) + geom_point()
p2 + facet_grid(vore ~ conservation, labeller = labeller(vore = capitalize))


# Or use character vectors as lookup tables:
conservation_status <- c(
  cd = "Conservation Dependent",
  en = "Endangered",
  lc = "Least concern",
  nt = "Near Threatened",
  vu = "Vulnerable",
  domesticated = "Domesticated"
)
## Source: http://en.wikipedia.org/wiki/Wikipedia:Conservation_status

p2 + facet_grid(vore ~ conservation, labeller = labeller(
  .default = capitalize,
  conservation = conservation_status
))


# In the following example, we rename the levels to the long form,
# then apply a wrap labeller to the columns to prevent cropped text
idx <- match(msleep$conservation, names(conservation_status))
msleep$conservation2 <- conservation_status[idx]

p3 <- ggplot(msleep, aes(x = sleep_total, y = awake)) + geom_point()
p3 +
  facet_grid(vore ~ conservation2,
    labeller = labeller(conservation2 = label_wrap_gen(10))
  )


# labeller() is especially useful to act as a global labeller. You
# can set it up once and use it on a range of different plots with
# different facet specifications.

global_labeller <- labeller(
  vore = capitalize,
  conservation = conservation_status,
  conservation2 = label_wrap_gen(10),
  .default = label_both
)

p2 + facet_grid(vore ~ conservation, labeller = global_labeller)

p3 + facet_wrap(~conservation2, labeller = global_labeller)

# }
源代码:R/labeller.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Construct labelling specification。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。