手工制作一些标签是可以的,如果只有少量,但是这种方式很乏味且不自动化。有一些方法可以将个别表达式合并成一个表达式“向量”,我们可以自动构建个别表达式。以下是一种方法,我忘记是否还有其他方法,甚至不确定这是否是规范的方法(总的问题之前已经在StackOverflow上提出并回答了,包括我自己!但我在非常快的搜索中找不到它)。
op <- par(mar = c(5,4,4,6) + 0.1)
plot(1:10)
axis(1)
labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
axis(4, at = seq(1, by = 2, length = 5),
labels = do.call(expression, labs), las = 1)
par(op)
这产生了
![在此输入图片描述](https://istack.dev59.com/V7p7V.webp)
我将阶段分开以进行解释。第一个是
> labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
> labs
[[1]]
alpha == 0.1
[[2]]
alpha == 0.05
[[3]]
alpha == 0.01
[[4]]
alpha == 0.005
[[5]]
alpha == 0.001
这将生成一个调用列表。
第二步是将它们组合成一个表达式,我使用 do.call()
实现
> do.call(expression, labs)
expression(alpha == 0.1, alpha == 0.05, alpha == 0.01, alpha ==
0.005, alpha == 0.001)
当然,您可以将它们组合使用:
labs <- do.call(expression, lapply(alpha, function(x) bquote(alpha == .(x))))
axis(4, at = seq(1, by = 2, length = 5),
labels = labs, las = 1)
expression()
,所以我在想如何处理它们。 - mhartm