将字符向量中的值显示为 R 箱线图中的斜体标签

CCI*_*CID 3 r boxplot plotmath

我想对箱线图名称使用字符向量,如何使它们显示为斜体?

# get some data
x <- rnorm(1000)

# I want to get this:
labels <- c(expression(italic("One"), italic("Two")))
labels

boxplot(split(x, cut(x,breaks = c(-Inf, 0, Inf))), names = labels)
Run Code Online (Sandbox Code Playgroud)

但是使用字符向量,例如

sNames <- c("One", "Two")
Run Code Online (Sandbox Code Playgroud)

我试过了bquote()expression()...

labels <- bquote(expression(italic(.(sNames))))
labels # but this is length 1, not 2
Run Code Online (Sandbox Code Playgroud)

... 与sapply()

labels <- sapply(sNames, function(x) bquote(expression(italic(.(x)))))
labels

boxplot(split(x, cut(x,breaks = c(-Inf, 0, Inf))), names = labels)
Run Code Online (Sandbox Code Playgroud)

但这似乎不能被解释为一个表达式。

谢谢你的帮助。

G. *_*eck 5

创建以下函数并按如下所示使用它:

make.italic <- function(x) as.expression(lapply(x, function(y) bquote(italic(.(y)))))

boxplot(split(x, cut(x,breaks = c(-Inf, 0, Inf))), names = make.italic(sNames))
Run Code Online (Sandbox Code Playgroud)

这使:

截屏