【问题标题】:expression + variable value + normal text in plot maintitle [duplicate]绘图主标题中的表达式+变量值+普通文本[重复]
【发布时间】:2013-12-30 04:38:21
【问题描述】:

我想在 R 图中实现如下标题:

title = "The significance level you entered is alpha = 0.05 which is often used."

为了得到这个,我把整个文本分成小部分,所以我终于可以写了

title = paste(part1,part2,part3,part4)

部分是:

part1 = "The significance level you entered is"

part2 = expression(alpha)

part3 = object@attribute

part4 = " which is often used."

所以我无法将这些部分组合起来得到我的结果。

要么正确显示符号并且第 3 部分打印为 object@attribute(不是他的值),要么未显示符号并且正确打印对象的值。

我已经使用了?expression?print,但没有得到它

?plotmath 中提供的示例也不符合我的情况。

【问题讨论】:

  • 嗨,在我开始这个话题之前,我看了这个帖子。但这里的区别在于,我想要连接符号、文本和变量的值。连接不是那个问题,而是我的对象属性的评估。它始终打印为 object@attribute 而不是 0.05。
  • 1.在我看来,这是一个明确提出的合理问题。 2. 一般来说,R中的plotmath/expression/bquote的使用系统即使对于有经验的用户来说也是相当困难的。没有一个关于该主题的现有 SO 问题是确定的。 3. 投票结束的五个用户中有四个的问题或答案为零 [r]。
  • 哇,这被错误地标记为重复!所谓的重复,基本上与这个问题无关。这个问题是关于将变量的值添加到标题而不仅仅是“表达式”。

标签: r plot expression title


【解决方案1】:

一种解决方案是使用bquote()。在bquote 中使用.() 来获取对象或表达式的值。以下是它可能如何工作的一个示例:

obj = list(foo=0, bar=99, alpha=0.05)
plot(1:10, main=bquote("Significance level is" ~ alpha == .(obj$alpha)))

波浪号 ~ 似乎有必要在这里说服 bquote 将 alpha 视为绘图表达式。

【讨论】:

  • 效果很好,感谢您的宝贵时间!!
  • 如果你想在ggplot2中使用这个geom_label,你必须把它包装在as.expression中:as.expression(bquote("Significance level is" ~ alpha == .(mean(x))))
  • 在我的例子中,我需要以^1 开头——上标数字,bquote 似乎不喜欢这个数字。会对任何建议感兴趣(expression(""^1") is not a solution, since I want to put the content of text_in_var`,似乎后者不容易做到expression
  • @JelenaČuklina,试试这样的:x <- 4; plot(1:10, main=bquote(` `^ .(1 - x) ~ "and some text."))
猜你喜欢
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
相关资源
最近更新 更多