11

有什么方法可以获取文本字符串的控制字符,例如在绘图表达式"\n"中进行newline评估,反之亦然。在下面的例子中,我想结合:

  • 一些字符文本
  • 文本控制字符(换行符)
  • 替换变量名
  • 包括一个绘图表达式

读完这个问题后,我可以用替代品来解决大部分问题,但newline没有评估这个角色。我现在绕着圈子,把自己与,plotmath和混淆了。在plotmath的帮助页面中,它说parsebquotesubstitute

与正常绘图不同,控制字符(例如 \n)不会在 plotmath 的字符串中解释。

这是否意味着它真的不可能?

lab = "some data"
form = "Exponential"
x = 1:10
y = x^2


plot( x , y , type = "b" )
title( main = substitute( paste( "Plot of " , phi , " of: "  , lab , "\nFunctional form: " , form ) , list(lab = lab , form = form ) ) , adj = 0 )

在此处输入图像描述

4

3 回答 3

11

As you have figured plotmath does not support newlines within, but you can use mtext with bquote, to write each line. For example I create a list of lines :

Lines <- list(bquote(paste( "Plot of " , phi , " of: "  , .(lab))),
              bquote(paste("Functional form: " , .(form)))

mtext(do.call(expression, Lines),side=3,line=1:0)

enter image description here

于 2013-03-08T18:05:56.397 回答
5

为了完整起见,这是另一个使用 unicode 且没有表达式的解决方案(改编自herehere):

plot(x, y, type="b")
title(main=paste("Plot of \u03A6 of:", lab, "\nFunctional form:", form), adj=0)

在此处输入图像描述

于 2013-03-09T08:11:05.577 回答
4

如果您使用网格图形,则以下 grob可用于根据线条的高度间隔线条,

library(devtools)
source_gist(2732693)
grid.expr(as.expression(Lines))

(使用 agstudy 的台词)

于 2013-03-09T08:39:29.773 回答