我是R的新手,我想弄明白,怎么写像“嘿伙计们,这是我的情节(\ n)8&lt; =(小于或等于)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&lt; = 8(\ n)xz&lt; = 10(\ n)x”((\ n)是换行符,其他字符正是印刷的内容)
那么是否有可能使用多个运算符打印表达式?
答案 0 :(得分:4)
heyTitle <- bquote(atop(
"Hey, guys, this is my plot for",
{8 <=x}*phantom()<=10
))
plot(1:10, main=heyTitle)
感谢atop()
trick {{1}}。
编辑:这是图
编辑2:从this answer借用来使用括号来修复间距。
答案 1 :(得分:4)
试试这个:
plot( 1:10, main = ~ bold(atop("Hey, guys, this is my plot for", {"8" <= x} <= "10")))
在windows()
设备上,它看起来像这样:
已修改间距,并使第二行稍微大一点以匹配第一行。添加了rbatt的atop
想法。进一步简化。
答案 2 :(得分: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()
或list()
而烦恼。然后将表达式与文本混合,paste()
通常会派上用场。如果没有paste
将它们组合为一个表达式,它们将在同一位置彼此重叠。