从整数序列生成表达式文字列表

时间:2012-04-06 10:27:44

标签: r plot expression

我想将一系列整数映射到一系列表达文字,以便将后者用作图中的刻度标记,例如。

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

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

我将如何正确地执行此操作(我希望axispi呈现为希腊字母,并-2 ... 2替换为i在上面的例子中)?

2 个答案:

答案 0 :(得分: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)

enter image description here

答案 1 :(得分:2)

试试这个:

lbls <- parse(text = paste(seq(-2, 2), "pi", sep = "*"))