2013-08-23 16 views
1

我有数字变量,比如K = 3.5e-5(它的值是在我的脚本中计算的)。我想在我的剧情某处写这个值(标题,文本中的情节,等等)为:R - 剧情:如何以10基的科学记数法格式化,并把它的文本,mtex,标题等功能?

K_{root} = 3.5 10^{-5} cm /d

我已经试过功能bquotesubstitute无人工作。

让我们把问题放在例子中。我曾尝试以下:

1)

png("exp_1.png") 
kroot = 3.5e-5 
plot(1:10,1:10, 
text(4,9,bquote(italic(K[root])~"="~.(kroot)~"cm/d"))) 
dev.off() 
+0

也许[这](http://r.789695.n4.nabble.com/Scientific-notation-in-plots-tp791499p791501。 HTML)可能会有所帮助。 – plannapus

回答

2

尝试我喜欢的功能,粘贴()。

plot(1:10,1:10, 
text(4,9,gsub("e",paste("K[root]=",format(k,scientific=TRUE),"cm/d",sep=" "),replacement=" 10^"))) 

,可随时更换 “E” 在这里使用功能GSUB。我编辑了我的答案以包含此内容。

输出:

> k=.0000035 
> k 
[1] 3.5e-06 


> gsub("e",paste("K[root]=",format(k,scientific=TRUE),"} cm/d",sep=" "),replacement=" 10^{ ") 
[1] "K[root]= 3.5 10^{ -06 } cm/d" 

您可以通过使用该功能SUBSTR去除多余的空格周围{ -06 },如果它是重要的,或者干脆离开了花括号中GSUB声明。

+0

'scientific = TRUE'将用E符号格式化数字(即3.5e-05)。在这里,我认为OP使用10符号(3.5 x 10^-5)。 – plannapus

+0

编辑答案作为回应。 – Drew75

1

我尽量避免在表达式中使用粘贴。通常有接近这种清洁方式:

expon <- floor(log10(kroot)) # returns -5 
mantis <- kroot*10^(-1*expon) # returns 3.5 
plot(1:10,1:10, 
text(4,9,substitute(italic(K[root]) == mantis %.% pten* expon ~cm/d, 
         list(expon=expon, mantis=mantis, pten=" 10^"))) 

enter image description here

相关问题