我已经围成一圈。
我想要的是轴标签上写着“相对耗氧量的差异”,“(下面的'2peak')下面的”(V0sub(2peak))“。我已经尝试了替换,bquote和一些不同的表达式和paste / paste0的组合,每当我有链接断点时,它似乎在下标“2peak”之前添加了一个大的间隙。
qplot(1:10)+
labs(x="", y=expression(paste0("Difference in relative oxygen consumption\n",(V0[2][peak]))))
使用粘贴而不是粘贴0将会产生很大的差距,但第二行是正确对齐的。
由于
答案 0 :(得分:1)
paste
,甚至会混淆事情。如果您阅读?plotmath页面,则表明您无法使用\n
获取换行符。可以使用atop
plotmath函数:
qplot(1:10)+ labs(x="", y=expression(atop(
Difference~'in'~relative~oxygen~consumption,
"("*V0[`2peak`]*")")) )
你的意图w.r.t. O \ sub2和"峰值"不清楚。一个小故障是"在"是保留的,这就是为什么需要引用它。解析器无法识别具有初始数字的令牌,这就是“#2; 2peak'需要引用。
答案 1 :(得分:0)
我认为@BondedDust的建议是最好的,但我也调整了a solution for a different question也可以工作。在这里,我们做了一些相当低级别的grob hacking。
#helper function
library(grid)
doubleYTitle <- function(a,b) {
gTree(children=gList(
textGrob(a, gp=gpar(fontsize=13, fontface=2), y=.5, x=0,
vp=viewport(layout.pos.row=1, layout.pos.col=1), rot=90),
textGrob(b, gp=gpar(fontsize=12, fontface=1), y=.5, x=0,
vp=viewport(layout.pos.row=1, layout.pos.col=2), rot=90)
), vp=viewport(layout=grid.layout(nrow=1, ncol=2)), cl="doubleytitle")
}
widthDetails.doubleytitle <- function(x, recording=T) {
Reduce(`+`, lapply(x$children, grid:::widthDetails.text)) * 5
}
现在我们将其用于
gg <- qplot(1:10)+labs(x="", y="Difference")
gb <- ggplot_build(gg)
gt <- ggplot_gtable(gb)
xx <- doubleYTitle("Difference in relative oxygen consumption",
expression((V0[2][peak])))
gt$grobs[[7]]<-xx
plot(gt)