我正在尝试在 R 图中生成一个美丽的图例。我有一个 factor=1e-5
,它在图例中的格式应该很好。我在 sfsmisc 包中发现了一个很好的函数,可以将数字转换为表达式。要将此表达式添加到我的 bquote 命令中,似乎我需要将其转换为调用。不幸的是,字符串末尾添加了大括号 (10^-5()
)。
有没有办法避免添加这些大括号?或者是否有一种更简单的方法将数字转换为绘图数学命令以在图例中使用? (无需手动执行)
factor = 1e-5
alpha = 1:10
omega = alpha^2 * factor
plot (
alpha
, omega
, xlab=bquote(alpha)
, ylab=bquote(omega)
, type="b"
)
text = expression()
# standard version
text[1] = as.expression(bquote(alpha%*%.(factor)))
# beautified version (use pretty10exp from sfsmisc package!?)
library("sfsmisc")
pretty = as.call(pretty10exp(factor, drop.1=T))
text[1] = as.expression(bquote(alpha^2%*%.(pretty)))
# add legend
legend("topleft", legend=text, pch=1, lty=1)
最佳答案
以下是您可以使用函数 parse
执行的操作:
text <- paste("alpha^2%*%",parse(text=pretty10exp(factor,drop.1=T)),sep="")
text
[1] "alpha^2%*%10^-5" # which we then use as the expression in your call to legend
legend("topleft", legend=parse(text=text), pch=1, lty=1)
有关其工作原理的更多说明,请参阅 ?parse
。
关于r - 将带有指数的数字转换为 R 中美丽图例的绘图命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290417/