5

我是 R 新手,我想弄清楚,如何在我的情节标题中写出类似“这是我的情节(\n)8 <=(小于或等于)x <= 10”之类的东西。

我试过这样的事情:

plot(1:10, main="Hey, guys, this is my plot for \n")
mtext(c(expression(8 <= x),expression(x <= 10), side=3)

这并不完全是我想要的,而是“8(小于或等于)xx(小于或等于)10”,这两个表达式打印在主标题下方的一行中,(这很酷)但在同一个地方,这几乎没用:)

我也试过:

plot(1:10, main=bquote(paste(8 <= x, x <= 10, sep=",")))

我想要什么(除了分隔符似乎被完全忽略),但我无法添加更多文本。输出:“8(小于或等于)xx(小于或等于)10”。

当我尝试

plot(1:10, main=paste("x",bquote(paste(x <= 8,z <= 10,sep=" ")),sep=" "))

输出完全激怒了我:标题是:“xpaste (\n) xx <= 8 (\n) xz <= 10 (\n) x”((\n) 是换行符,其他字符正好打印什么)

那么是否有可能使用多个运算符打印表达式?

4

3 回答 3

4
heyTitle <- bquote(atop(
    "Hey, guys, this is my plot for",
    {8 <=x}*phantom()<=10
    ))

plot(1:10, main=heyTitle)

感谢这个诀窍的答案。atop()

编辑:这是图

编辑 2:从G. Grothendieck 的另一个答案中借用括号来固定间距。

在此处输入图像描述

于 2014-05-07T13:58:52.040 回答
4

尝试这个:

 plot( 1:10, main = ~ bold(atop("Hey, guys, this is my plot for", {"8" <= x} <= "10")))

windows()设备上它看起来像这样: 截屏

修改间距并使第二行稍大以匹配第一行。添加了 rbatt 的atop想法。进一步简化。

于 2014-05-07T14:03:53.980 回答
3

表达式有点傻,但是你可以这样做

plot(1:10, main="Hey, guys, this is my plot for \n")
mtext(expression(paste(8 <= x,", ",x <= 10)), side=3)

要获得表达式向量,只需使用expression(exp1,exp2,exp3). 无需理会c()or list()。然后将表达式与文本混合,paste()通常会派上用场。如果不paste将它们组合为一个表达式,它们将在同一位置相互叠加。

于 2014-05-07T13:50:09.467 回答