图标签中的表达式和新行

时间:2013-12-12 16:50:47

标签: r plot expression newline

我想在我的图表标签上添加一些下标和上标。我试过expression,但它不能按照我的意愿使用新行(\n)。我尝试使用paste修复它,但它不起作用。以下是我的一些尝试:

par(mfcol=c(1,3))
plot(1,1,main=expression("first line \n second line x"^2))
plot(1,1,main=expression(paste("first line \n second line", "x"^2)))
plot(1,1,main=paste("first line \n second line", expression("x"^2)))

它产生:

enter image description here

在前两张图片中,第二行没有很好地居中,在第三行中,上标失败。如何获得中心线和下标/上标?

2 个答案:

答案 0 :(得分:19)

您可以在表达式中引入换行符:

bquote(atop("first line",
            "second line" ~ x ^ 2))

(我在这里使用bquote而不是expression - 在这种情况下都适用。)

执行demo(plotmath)以获取更多信息,并查看atop的文档。

boxplot显然在解释标题中的表达方面有些困难。一个简单的解决方法是单独绘制标题:

boxplot(data, main = '')
title(bquote(atop("first line", "second line" ~ x ^ 2)))

答案 1 :(得分:7)

快速解决方案是在“first”之前添加一些空格。

由于plotmath不支持换行符,您可以使用mtext逐个创建行,如下所示:

plot(1,1)
exp <- 2
Lines <- list(bquote("first line"),bquote("second line x"^2))
mtext(do.call(expression, Lines),side=3,line=1:0)

enter image description here