2012-05-16 12 views
5

ギリシャシンボルを軸ラベルとしてプロットしようとしています。異なるスケールで複数のプロットをループするために、私は正常に動作代わりexpression()内シンボル名を使用するシンボル名を含むベクター、使用したいのために:何らかの理由でベクトルからギリシャのシンボルで軸ラベルをプロットする

x <- rnorm(10, 5,6) 
y <- rnorm(10, 2,1) 
xlab <- expression(paste(mu, "mol/mol")) 
plot(x,y, xlab = xlab) 

を、私はできませんシンボル名を含むベクターで「ムー」を置き換えます

k <- "mu" 
xlab <- expression(paste(get(k), "mol/mol")) 
plot(x,y, xlab = xlab) 

私は似たquestionを見つけましたが、何の機能のために働いていたことはギリシャのシンボルのために働くように見えるしません:

ylab <- substitute(paste(nn, "mol/mol"), list(nn=k)) 
xlab <- bquote(.(k) * "mol/mol") 

plot(x,y, ylab = ylab, xlab = xlab) 

どうしたらいいですか?どのようにベクトルを介して軸ラベルにギリシャのシンボルを取得するには?

+0

式は原始関数です。それはその議論を評価しない。 – vinux

+1

[このQ&A](http://stackoverflow.com/questions/10042258/generate-a-list-of-expression-literals-from-an-integer-sequence)は役に立ちますか? – fotNelton

+0

@fotNelton:これは少なくとも機能しません:ylab < - do.call( "expression"、lapply(k、function(i)substitute(k * "mol/mol"、list(k = i))))) – Mikko

答えて

5

これを試してみてください:

xlab = parse(text=paste(k, "*mol/mol")) 
+0

誰かが '*'がなぜ必要なのか、それが何をするのか説明できますか? – Henrik

+0

ありがとうbaptiste! – Mikko

+1

'?plotmath'は' x * y'で 'xとyを並置する '、つまりスペースを入れずに入れて使うことを示唆しています。 – baptiste

関連する問題