它是一个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-帮助线程 http://r.789695.n4.nabble.com/Format-of-numbers-in-plotmath-expressions-td4645126.html与此问题相关。