有没有办法在 "paste" 中正确显示 "expression"?
Is there a way to show an "expression" correctly in a "paste"?
我在 R 中有这样的表达式:
ylabel <- expression("NO"[3]*"-N-Concentration [mg/l]")
这应该是我的 ggboxplot 上 y 轴的标签。
因为 y 标签离轴太近,我使用 \n
(新行)来增加到轴的距离:
ylab=paste(ylabel,"\n")
但是在我的绘图上,我的标签将不会如我预期的那样正确显示:
Wrong formated label
有人知道如何解决这个问题吗?
我已经搜索了论坛,但不幸的是仍然没有成功。
编辑:
我只是添加了一个小例子来重现问题:
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)
我们可以使用 substitute
:
plot(y,
ylab=substitute(paste("NO"[3]*-N-Concentration [mg/l],"\n"), list(ylabel[2])))
我在 R 中有这样的表达式:
ylabel <- expression("NO"[3]*"-N-Concentration [mg/l]")
这应该是我的 ggboxplot 上 y 轴的标签。
因为 y 标签离轴太近,我使用 \n
(新行)来增加到轴的距离:
ylab=paste(ylabel,"\n")
但是在我的绘图上,我的标签将不会如我预期的那样正确显示:
Wrong formated label
有人知道如何解决这个问题吗? 我已经搜索了论坛,但不幸的是仍然没有成功。
编辑: 我只是添加了一个小例子来重现问题:
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)
我们可以使用 substitute
:
plot(y,
ylab=substitute(paste("NO"[3]*-N-Concentration [mg/l],"\n"), list(ylabel[2])))