35

次のラベルでプロットにラベルを付けようとしています:

「u」がマイクロ記号である「Some Assay EC50 (uM)」。

私は現在持っています:

assay <- "Some Assay"
plot(0,xlab=expression(paste(assay," AC50 (",mu,"M)",sep="")))

しかし、それは、望ましい「いくつかのアッセイ EC50 (uM)」ではなく、「アッセイ EC50 (uM)」を与えます。

提案?ありがとう。

私も試しました:

paste(assay,expression(paste(" AC50 (",mu,"M)",sep="")),sep="")
4

4 に答える 4

59

の組み合わせbquote()と少しの plotmath fu が必要です。

assay <- "Some Assay"
xlab <- bquote(.(assay) ~ AC50 ~ (mu*M))
plot(0, xlab = xlab)

~スペーシング演算子で*、内容を演算子の左右に並置することを意味します。ではbquote()、 で囲まれたもの.( )はすべて検索され、名前付きオブジェクトの値に置き換えられます。so.(assay)は式で に置き換えられSome Assayます。

于 2013-02-25T18:55:04.027 に答える
2

mtextおよび bquoteを使用した別のオプション

plot(0,xlab='')
Lines <- list(bquote(paste(assay," AC50 (",mu,"M)",sep="")))
mtext(do.call(expression, Lines),side=1,line=3)

最初のプロットで xlab を null に設定したことに注意してください。

EDIT bquote は .( ) で囲まれた要素をその値で置き換える式を作成するため、式を呼び出す必要はありません。したがって、良い答えは次のとおりです。

plot(0,xlab='')
Lines <- bquote(paste(.(assay)," AC50 (",mu,"M)",sep=""))
mtext(Lines,side=1,line=3)
于 2013-02-25T18:59:50.533 に答える
2

また、貧しい人のアプローチを試すこともできます。

assay <- "Some Assay"
plot(0, xlab = paste0(assay, " AC50 (µM)"))

式を使用するのではなく、直接 mu 文字を指定します (そしてだけpaste0です)。pastesep = ""

于 2013-02-25T18:58:02.843 に答える