7

I have my axis ticks:

axis(4,at=c(1.6526,1.9720,2.6009,3.3403),las=1)

now I want to label them. The text should be something like this:

labels=c("alpha=0.1","alpha=0.05","alpha=0.01","alpha=.001")

But I want alpha to look like the greek character. Thanks!

4

2 に答える 2

8

expression使わなくても使えますpaste

axis(4,at=c(0.75,1.75),labels=c(expression(alpha==0.1),expression(alpha==0.2)),las=1)
于 2012-10-25T12:32:03.240 に答える
5

ラベルがいくつかある場合は手作業で作成しても問題ありませんが、退屈で自動化されていません。個々の式を式「ベクトル」に結合する方法があり、個々の式の構築を自動化できます。これが1つの方法です。他の方法があるかどうか、またはこれが標準的な方法であるかどうかを忘れています(一般的な問題は以前にStackOverflowで尋ねられ、回答されています[私を含む!]しかし、非常に簡単な検索では見つかりませんでした)。

op <- par(mar = c(5,4,4,6) + 0.1)
plot(1:10)
axis(1)
labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
axis(4, at = seq(1, by = 2, length = 5),
     labels = do.call(expression, labs), las = 1)
par(op)

どちらが生産しますか

ここに画像の説明を入力

説明のためにステージを分けました。最初は

> labs <- lapply(alpha, function(x) bquote(alpha == .(x)))
> labs
[[1]]
alpha == 0.1

[[2]]
alpha == 0.05

[[3]]
alpha == 0.01

[[4]]
alpha == 0.005

[[5]]
alpha == 0.001

呼び出しのリストを生成します。

2 番目のステップは、これらを式に結合することです。do.call()

> do.call(expression, labs)
expression(alpha == 0.1, alpha == 0.05, alpha == 0.01, alpha == 
    0.005, alpha == 0.001)

もちろん、これらを組み合わせることができます。

labs <- do.call(expression, lapply(alpha, function(x) bquote(alpha == .(x))))
axis(4, at = seq(1, by = 2, length = 5),
     labels = labs, las = 1)
于 2012-10-25T12:46:15.470 に答える