11

次の例を検討してください。

plot(c(2,4,6)~c(1,2,3),xlab="x",
ylab=expression(paste('flux (g ',CO[2]~m^{-2}~h^{-1},')')))

明らかに、「g」と「CO」の間に完全なスペースが必要ですが、何らかの理由で、グラフ ラベルのスペースが小さくなります (ゼロのラベルもあります)。

次のようにすると、問題はさらに明白になります。

plot(c(2,4,6)~c(1,2,3),xlab="x",
ylab=expression(paste('flux (g C',O[2]~m^{-2}~h^{-1},')')))

私は何か間違ったことをしていますか?間隔を修正する方法、または多くの下付き/上付き文字とギリシャ文字を含むラベルを作成するより良い方法はありますか?

4

1 に答える 1

11

おそらく、OS が非セリフ表示に使用するフォントで、印刷上正しい「スペース」を取得しています。フォントを変更したり、 plotmath を使用して特定の文字列を保持するのに十分な空白を挿入したりできますphantom()

 plot(c(2,4,6)~c(1,2,3),xlab="x",
     ylab=expression(paste('flux',phantom(x),'(g ',CO[2]~m^{-2}~h^{-1},')')))

または、@baptiste が指摘しているようpasteに、真の R 式のチルダは「スペース」として処理されるため、通常のプロットマス区切り文字を使用してプロマスなしでこれを行うことができます。

     ylab=expression(flux*phantom(x)*(g~CO[2]~m^{-2}~h^{-1})))
于 2012-05-23T12:17:24.490 に答える