如何在剧情的标题中写入H2o?化学式+ Gnu R中的文字剧情标题
由于这个hint我可以在标题中加入与
plot(main=expression(H[2]*O),0)
一个普通的化学式在这里真正的配方更有点复杂,我要缩写他们和这些添加到文本,在需要的地方。 但这种失败:
h2o <- expression(H[2]*O)
plot(main=paste(h2o, "in the air"),0) # paste fails here :(
如何在剧情的标题中写入H2o?化学式+ Gnu R中的文字剧情标题
由于这个hint我可以在标题中加入与
plot(main=expression(H[2]*O),0)
一个普通的化学式在这里真正的配方更有点复杂,我要缩写他们和这些添加到文本,在需要的地方。 但这种失败:
h2o <- expression(H[2]*O)
plot(main=paste(h2o, "in the air"),0) # paste fails here :(
这里有一种方法可以让你在变量中使用化学公式。
# note that .formula is either an expression or a character
# string that would define a valid expression
maketitle <- function(.formula, .other){
.expression <- sprintf('%s ~ "%s"',as.character(.formula), .other)
evalq(parse(text = .expression))
}
f <- expression(H[2]*O)
o <- 'blah blah'
plot(1:10, main = maketitle(f, o))
记住的eval(parse(text = ...))
的危险,
个人而言,我从来没有后悔过尝试,不要低估自己 未来的愚蠢。 - 格雷格·斯诺(解释为何的eval(解析(...))是 往往不理想,回答由臭名昭著的 财富引发的问题(106)) R-帮助(2007年1月
你想
plot(1:10, main = expression(H[2] * O ~ "in the air"))
或者
plot(1:10, main = expression(H[2] * O ~ "in" ~ the ~ air))
(该in
需求解析器捕捉第一个被引用,因为它是R的语法的一部分,如for(i in 1:10)
。)
重要的一点是x ~ y
表示法将x
和y
彼此相邻地分开。 做阅读?plotmath
!
但主要的是,无论你在这里提供的需要是由expression()
返回的表达式。通常你不需要paste()
里面的表达式,因为你可以在plotmath的表达式中包含字符串。
,到目前为止工程,但是我怎样才能从一个变量中读出化学式? –
我不认为你可以,我尝试了一些东西,包括'bquote()','substitute()'等等 –