Dav*_*cht 8 r ggplot2 plotmath
我正在使用annotate()
我的一个ggplot2
图上覆盖文字.我正在使用该选项,parse=T
因为我需要使用希腊字母rho.我想要文字说= -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)
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么能得到最后的0出现?我以为我可以这样使用paste()
:
annotate(geom="text",x=1,y=1,label=paste("rho==-0.5","0",sep=""),parse=T)
Run Code Online (Sandbox Code Playgroud)
但后来我得到了错误:
Error in parse(text = lab) : <text>:1:11: unexpected numeric constant
1: rho==-0.5 0
^
Run Code Online (Sandbox Code Playgroud)
mne*_*nel 16
这是一个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)
Run Code Online (Sandbox Code Playgroud)
你会得到相同的行为base
:
plot(1, type ='n')
text(1.2, 1.2, expression(rho=='-0.50'))
text(0.8, 0.8, expression(rho==0.50))
Run Code Online (Sandbox Code Playgroud)
如果你想要一个更通用的方法,尝试类似的东西
sprintf('rho == "%1.2f"',0.5)
Run Code Online (Sandbox Code Playgroud)
有一个与此问题相关的r-help线程.
归档时间: |
|
查看次数: |
928 次 |
最近记录: |