我希望有两行的情节标题,但这不起作用,为什么?我怎样才能让它发挥作用?
CVal<-1
SumEpsVal<-2
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)
这在这里工作:
plot(1:10, main=paste("C=1", "\n", "SumXi=2"))
Run Code Online (Sandbox Code Playgroud)
我猜bquote出错了...(查询?bquote)我试图改变bqoute(where-argument)中的环境,但我不知道要采取哪种环境.
BTW:
plot(1:10, main=bquote(paste("C=", .(CVal), "bla \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)
用"bla"让事情变得疯狂.
The*_*ras 12
就个人而言,我会像已经建议的那样使用mtext.但如果你真的希望它是一个单行,你可以bquote通过使用atop:"欺骗" :
plot(1:10, main=
bquote(atop(paste("C=",.(CVal)), paste(sum(xi),"=",.(SumEpsVal)))))
Run Code Online (Sandbox Code Playgroud)
它甚至将两条线整齐地对准中心.
ags*_*udy 10
根本问题是plotmath不支持要输出的表达式中的换行符.
Control characters (e.g. \n) are not interpreted in character strings in plotmath,
unlike normal plotting.
Run Code Online (Sandbox Code Playgroud)
您确实需要单独创建和输出每一行.
例如 :
Lines <- list(bquote(paste("C=", .(CVal))),
bquote(paste(sum(xi), "=", .(SumEpsVal))))
Run Code Online (Sandbox Code Playgroud)
现在输出每一行列表中的文本转换为表达式do.call
mtext(do.call(expression, Lines),side=3,line=0:1)
Run Code Online (Sandbox Code Playgroud)
