R 用两行打印主标题

R 用两行打印主标题,r,plotmath,R,Plotmath,我想有两行的情节标题,但这不起作用,为什么?我怎样才能让它工作呢 CVal<-1 SumEpsVal<-2 plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) ))) 我猜bquote犯了什么错。。。(查找?bquote) 我试图在bRoute(where参数)中更改环境,但我不知道应该选择哪个环境 顺便说一句: 使“bla”变得疯狂。实现这一点的一种方法是使用mtext在

我想有两行的情节标题,但这不起作用,为什么?我怎样才能让它工作呢

CVal<-1 
SumEpsVal<-2 
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) )))
我猜bquote犯了什么错。。。(查找?bquote) 我试图在bRoute(where参数)中更改环境,但我不知道应该选择哪个环境

顺便说一句:


使“bla”变得疯狂。

实现这一点的一种方法是使用
mtext
在主标题下添加一行,如下所示:

plot(1:10, main=bquote(paste("C=", .(CVal))))
mtext(bquote(paste(sum(xi), "=", .(SumEpsVal) )),side=3,line=0)

可能有一个更漂亮的解决方案,但这可能足以满足您的需要。

根本问题是plotmath不支持 要输出的表达式

Control characters (e.g. \n) are not interpreted in character strings in plotmath, 
  unlike normal plotting.
您确实需要分别创建和输出每一行

例如:

Lines <- list(bquote(paste("C=", .(CVal))),
              bquote(paste(sum(xi), "=", .(SumEpsVal))))

就我个人而言,我会按照建议使用多行文字。但是如果你真的想让它成为一行,你可以通过使用
top
“欺骗”
bquote

plot(1:10, main=
  bquote(atop(paste("C=",.(CVal)), paste(sum(xi),"=",.(SumEpsVal)))))
它甚至将两条线整齐地对准中心

Lines <- list(bquote(paste("C=", .(CVal))),
              bquote(paste(sum(xi), "=", .(SumEpsVal))))
mtext(do.call(expression, Lines),side=3,line=0:1)
plot(1:10, main=
  bquote(atop(paste("C=",.(CVal)), paste(sum(xi),"=",.(SumEpsVal)))))