我想在我的图表标签上添加一些下标和上标。我试过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)))
它产生:
在前两张图片中,第二行没有很好地居中,在第三行中,上标失败。如何获得中心线和下标/上标?
答案 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)