4

我想将整数序列映射到表达式文字序列,以便将后者用作绘图中的刻度线标签,例如

lbls <- lapply(-2:2, function(i) expression(i * pi))
plot(...)
axis(1, at=seq(-2,2)*pi, labels=lbls)

到目前为止,我已经尝试了所有我能想到的,等变体bquote,但显然我一定错过了一些东西。此外,FAQ 和相关的 SO 问题和答案并没有为我完全解决这个问题。substituteexpression

我将如何正确地做到这一点(我想axis呈现pi为希腊字母并在上面的示例中替换为-2... )?2i

4

2 回答 2

4

尝试这个:

lbls <- do.call("expression", lapply(-2:2, function(i) substitute(X * pi, list(X = i))))
plot(-10:10, -10:10, xaxt="n")
axis(1, at=seq(-2,2)*pi, labels=lbls)

在此处输入图像描述

于 2012-04-06T10:33:44.530 回答
2

尝试这个:

lbls <- parse(text = paste(seq(-2, 2), "pi", sep = "*"))
于 2012-04-06T10:48:02.783 回答