我在 R 中有这样的表达式:
ylabel <- expression("NO"[3]*"-N-Concentration [mg/l]")
这应该是 ggboxplot 上 y 轴的标签。
由于 y 标签距离轴太近,我使用 \n
(换行)来创建与轴的距离:
ylab=paste(ylabel,"\n")
但是在我的绘图上,我的标签将不会按照我的预期正确显示:
有人知道如何解决这个问题吗? 我已经搜索了论坛,但不幸的是仍然没有成功。
编辑: 我只是添加了一个小例子来重现该问题:
ylabel <- expression("NO"[3]*"-N-Concentration [mg/l]")
par(mar=c(6,8,1,1))
y=c(1,1,2,2,3,4,5)
plot(y, ylab=paste(ylabel,"\n"))
最佳答案
考虑使用bquote
,它会使用atop
计算表达式
par(mar = c(3, 6, 2, 2))
plot(1:10, ylab = bquote(atop(NO[3]*-N-Concentration [mg/l], "\n")))
-输出
或者如果我们需要表达式
par(mar = c(3, 6, 2, 2))
ylabel <- expression(atop(NO[3]*-N-Concentration [mg/l], "\n"))
plot(y, ylab=ylabel)
-输出
---
或者正如评论中提到的OP,如果[mg/l]
需要按原样显示,那么只需引用它即可
ylabel <- expression(atop(NO[3]*-N-Concentration*" [mg/l]", "\n"))
par(mar = c(3, 6, 2, 2))
plot(1:10, ylab = ylabel)
关于r - 有没有办法在 "expression"中正确显示 "paste"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69329831/