我想将一系列整数映射到一系列表达文字,以便将后者用作图中的刻度标记,例如。
lbls <- lapply(-2:2, function(i) expression(i * pi))
plot(...)
axis(1, at=seq(-2,2)*pi, labels=lbls)
到目前为止,我已经尝试了bquote
,substitute
,expression
等所有可以想到的变体,但显然我一定错过了一些东西。
此外,常见问题和相关的SO问题&amp;答案并没有完全解决这个问题。
我将如何正确地执行此操作(我希望axis
将pi
呈现为希腊字母,并-2
... 2
替换为i
在上面的例子中)?
答案 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)
答案 1 :(得分:2)
试试这个:
lbls <- parse(text = paste(seq(-2, 2), "pi", sep = "*"))