【发布时间】:2019-05-16 11:52:22
【问题描述】:
以 mtcars 数据集为例,我在 R 中 ggpubr 的 ggscatter 函数中使用“annotate”。这是我的代码:
library("ggpubr")
ggscatter(mtcars[mtcars$cyl == 8, ], x = "mpg", y = "qsec",
facet.by = "cyl", add = "reg.line", add.params = list(color = "black", fill = "lightgrey"),
conf.int = TRUE, cor.method = "spearman", cor.coef = TRUE, xlab = "mpg", ylab = "qsec")
+ annotate("text", x=10, y=15, parse=TRUE, label = paste0("n = ", with(mtcars, sum(mtcars$cyl == 8))))
这一切都完美无缺,除了注释,特别是这部分:
label = paste0("n = ", with(mtcars, sum(mtcars$cyl == 8)))
我希望带注释的文本为:“n = 14”。但是,它显示为:“=(n,14)”。怎么看起来这么不一样?任何建议都非常受欢迎。谢谢。
【问题讨论】:
-
我不确定是否是问题所在,但代码有点尴尬...
with(mtcars, sum(cyl==8))或sum(mtcars$cyl == 8))可以解决问题。 -
@cory - 感谢您的建议,但不幸的是,这对我不起作用。当我替换
with(mtcars, sum(mtcars$cyl == 8))并使用您的任何一个建议时,它始终保持不变。看起来很奇怪,如果这能解决你的问题?关于小笨拙的代码,你是对的,这很不寻常,因为我从更复杂的代码中“简化”了它,只是为了这个例子的目的。我认为这与我要解决的问题无关。谢谢。 -
@cory - 只是跟进,即使我只是使用
label = paste0("n = 14"),它仍然显示“=(n, 14”而不是“n = 14”。对我来说似乎很奇怪。跨度> -
@cory - 好的,我解决了。它是由
parse=TRUE引起的。当我从代码中删除它时,它突然起作用了。我不明白,但没关系。我很高兴它现在可以工作。感谢您的帮助和阅读我所有的 cmets。