2

R プロットで美しい凡例を生成しようとしています。がありfactor=1e-5、凡例に適切にフォーマットされているはずです。パッケージsfsmiscに、数値を式に変換する素敵な関数が見つかりました。この式を bquote コマンドに追加するには、それを呼び出しに変換する必要があるようです。残念ながら、文字列の最後に中括弧が追加されています ( 10^-5())。

それらの中括弧の追加を避ける方法はありますか? または、凡例で使用するために数値を plotmaths コマンドに変換する簡単な方法はありますか? (手動で行う必要はありません)

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)

スクリーンショット: 赤い矢印は、そこにあってはならないブレースを指しています

4

1 に答える 1

3

function で代わりにできることは次の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

于 2013-03-08T10:08:11.980 に答える