首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用plotmath保持尾随零

使用plotmath保持尾随零
EN

Stack Overflow用户
提问于 2013-03-14 06:32:07
回答 1查看 1.2K关注 0票数 9

我正在使用annotate()在我的一个ggplot2图上覆盖文本。我使用选项parse=T,因为我需要使用希腊字母rho。我希望文本是= -0.50,但是尾随的零被裁剪了,我得到的是-0.5

下面是一个例子:

代码语言:javascript
复制
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()

代码语言:javascript
复制
annotate(geom="text",x=1,y=1,label=paste("rho==-0.5","0",sep=""),parse=T)

但随后我得到了错误:

代码语言:javascript
复制
Error in parse(text = lab) : <text>:1:11: unexpected numeric constant
1: rho==-0.5 0
             ^
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-14 06:39:19

这是一个与ggplot2无关的plotmath表达式解析问题。

您可以做的是确保将0.50解释为字符串,而不是将其四舍五入的数值:

代码语言:javascript
复制
ggplot(data=df, aes(x=x, y=y)) +
    geom_point() +
    annotate(geom="text", x=1, y=1, label="rho=='-0.50'", parse=T)

您将使用base获得相同的行为

代码语言:javascript
复制
plot(1, type ='n')
text(1.2, 1.2, expression(rho=='-0.50'))
text(0.8, 0.8, expression(rho==0.50))

如果您想要一种更通用的方法,请尝试类似这样的方法

代码语言:javascript
复制
sprintf('rho == "%1.2f"',0.5)

有一个与此问题相关的r-help thread

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15397789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档