2013-03-13 10 views
7

私はggplot2プロットの1つにテキストをオーバーレイするのにannotate()を使用しています。私はギリシャ文字「rho」を使う必要があるので、オプションparse=Tを使用しています。私は= -0.50と言うテキストが欲しいですが、末尾のゼロがクリップされ、代わりに-0.5が得られます。plotmathで末尾のゼロを維持する

はここに例を示します

library(ggplot2) 
x<-rnorm(50) 
y<-rnorm(50) 
df<-data.frame(x,y) 

ggplot(data=df,aes(x=x,y=y))+ 
geom_point()+ 
annotate(geom="text",x=1,y=1,label="rho==-0.50",parse=T) 

誰もが、私は最後の0を表示するために得ることができる方法を知っていますか?私は、このようpaste()を使用すると考えていた:

annotate(geom="text",x=1,y=1,label=paste("rho==-0.5","0",sep=""),parse=T) 

が、その後、私はエラーを取得する:

Error in parse(text = lab) : <text>:1:11: unexpected numeric constant 
1: rho==-0.5 0 
      ^

答えて

14

それは問題を解析plotmath式です。 ggplot2に関連していません。あなたは何ができるか

0.50は、文字列ではなく、四捨五入された数値として解釈されていることを確認です:

ggplot(data=df, aes(x=x, y=y)) + 
    geom_point() + 
    annotate(geom="text", x=1, y=1, label="rho=='-0.50'", parse=T) 

あなたはbaseを使用して同じ動作を得るでしょう:

plot(1, type ='n') 
text(1.2, 1.2, expression(rho=='-0.50')) 
text(0.8, 0.8, expression(rho==0.50)) 

より一般的なアプローチをお探しの場合は、

sprintf('rho == "%1.2f"',0.5) 

この問題に関連するr-help threadがあります。

+0

これは機能します。ありがとう! –

関連する問題