表达式+变量值+绘图maintitle中的普通文本

use*_*283 17 plot expression r title

我想在R图中获得如下标题:

title = "The significance level you entered is alpha = 0.05 which is often used."
Run Code Online (Sandbox Code Playgroud)

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

title = paste(part1,part2,part3,part4)
Run Code Online (Sandbox Code Playgroud)

部分是:

part1 = "The significance level you entered is"

part2 = expression(alpha)

part3 = object@attribute

part4 = " which is often used."
Run Code Online (Sandbox Code Playgroud)

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

符号显示正确,第3部分打印为对象@属性(不是他的值)或符号未显示,对象的值打印正确.

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

提供的示例?plotmath也与我的情况不符.

bde*_*est 22

一种解决方案是使用bquote().使用.()within bquote获取对象或表达式的值.这是一个如何工作的例子:

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

波浪~似乎有必要说服bquote将alpha视为一个plotmath表达式.

在此输入图像描述

  • 如果你想将其用于 `ggplot2` 中的 `geom_label`,则必须将其包装在 `as.expression` 中: `as.expression(bquote("Significance level is" ~ alpha == .(mean(x)) )))`。 (3认同)