【发布时间】:2014-05-16 04:42:30
【问题描述】:
我正在使用 sfsmisc 包中的 pretty10exp() 来使科学记数法看起来更好。例如:
library(sfsmisc)
a <- 0.000392884
pretty10exp() 的输出如下所示:
> pretty10exp(a, digits.fuzz=3) #round to display a certain number of digits
expression(3.93 %*% 10^-4)
我可以使用它在图表的标题或坐标轴上显示漂亮的a 版本,如本文所述:
Force R to write scientific notations as n.nn x 10^-n with superscript
但是,当我尝试将它与 paste() 结合以编写如下字符串序列时,事情又变得丑陋了:
# some data
x <- seq(1, 100000, len = 10)
y <- seq(1e-5, 1e-4, len = 10)
# default plot
plot(x, y)
legend("topleft", bty="n",legend=paste("p =", pretty10exp(a, digits.fuzz=3)))
这给了我下图,所以我想paste() 无法处理可以在pretty10exp() 的输出中找到的那种格式化表达式:
我可以使用paste() 的替代方法来组合表达式“p =”和pretty10exp() 的科学记数法吗?
【问题讨论】:
-
是的。我知道的一个是
bquote。您也许可以使用call,但我不确定。 -
我刚刚尝试了
bquote,但我不确定我是否正确使用它,唯一显示的是“p =”,没有别的...... -
或许可以看看
sprintf -
sprintf相同,它只是完全忽略了“p =”之后的所有内容,这里有什么我遗漏的吗? -
啊,没关系,我以为
bquote会被使用而不是paste,但你实际上把它放在paste括号内,让我再试一次
标签: r graph output scientific-notation