图标签中的表达式和新行

Mar*_*z-C 14 plot expression newline r

我想在我的图表标签上添加一些下标和上标.我试过了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)))
Run Code Online (Sandbox Code Playgroud)

它产生:

在此输入图像描述

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

Kon*_*lph 20

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

bquote(atop("first line",
            "second line" ~ x ^ 2))
Run Code Online (Sandbox Code Playgroud)

(我使用bquote而不是expression在这里 - 在这种情况下都可以使用.)

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

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

boxplot(data, main = '')
title(bquote(atop("first line", "second line" ~ x ^ 2)))
Run Code Online (Sandbox Code Playgroud)

  • 这很奇怪:这个解决方案适用于 `plot`,但不适用于 `boxplot`。我收到一条消息,说没有名为“atop”的函数。 (2认同)

ags*_*udy 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 我想我之前已经看过[某处](http://stackoverflow.com/a/15300449/1478381)......!(这仍然是一个很好的答案) (2认同)