【问题标题】:Strange annotation formatting using annotate in ggpubr in R在 R 中使用 ggpubr 中的注释进行奇怪的注释格式化
【发布时间】: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。

标签: r ggplot2 annotate ggpubr


【解决方案1】:

根据我上面的评论,从代码中删除 parse=TRUE 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    相关资源
    最近更新 更多