9

プロットannotate()の 1 つにテキストを重ねるために使用しています。ギリシャ文字のローを使用する必要があるためggplot2、オプションを使用しています。parse=Tテキストに を表示したいのです= -0.50が、末尾のゼロが切り取られ、-0.5代わりに が表示されます。

次に例を示します。

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
             ^
4

1 に答える 1

17

これは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 スレッドがあります。

于 2013-03-13T22:39:18.857 に答える