我正在尝试使用特殊字符和上标来制作y轴标题。我能够做到这一点,但我希望结束括号不要上标。这就是我遇到的问题。我认为它只是放置了我的括号,但我已经尝试了(看似)一切。
plot(WatexCl, ConcuM, col = as.numeric(1), pch = as.numeric(Depth),
xlab = expression(paste("Concentration Cl ( ", mu, "moles/g dry wt)")),
ylab = expression(paste("Average Conc of S- on plates ( ", mu, "Moles/cm"^"2"),)),
data = plates)
答案 0 :(得分:66)
用户通常无法掌握的一件事是,在用于绘图标签的表达式中时,您总是不需要引用字符串和paste
。直接使用布局工具通常更简单(例如~
和*
)。例如:
df <- data.frame(y = rnorm(100), x = rnorm(100))
plot(y ~ x, data = df,
ylab = expression(Average ~ Conc ~ of ~ S- ~ on ~ plates ~
(mu ~ Moles ~ cm^{-2} ~ dry ~ wt)),
xlab = expression(Concentration ~ Cl ~ (mu ~ moles ~ g^{-1} ~ dry ~ wt)))
或者,您可以为较长的文本部分包含字符串;在这种情况下,它可以说更容易:
plot(y ~ x, data = df,
ylab = expression("Average Conc of S- on plates" ~
(mu ~ moles ~ cm^{-2} ~ "dry wt")),
xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
但请注意,此处不需要paste
字符串和其他功能。
两者都产生:
请注意plotmath与上标2的问题。您可能希望为y轴边距添加一些额外的空间以适应:
op <- par(mar = c(5,4.5,4,2) + 0.1)
plot(y ~ x, data = df,
ylab = expression("Average Conc of S- on plates" ~
(mu ~ moles ~ cm^{-2} ~ "dry wt")),
xlab = expression("Concentration Cl" ~ (mu ~ moles ~ g^{-1} ~ "dry wt")))
par(op)
生产
答案 1 :(得分:7)
这解决了超编写右括号的问题:
# reproducible data
plates <- data.frame(WatexCl = rnorm(100), ConcuM = rnorm(100), Depth = rnorm(100))
# alter the default plot margins so the
# superscript in the y-axis label is completely displayed
par(mar=c(5,5,4,2))
# draw the plot
plot(WatexCl ~ ConcuM, data = plates,
col = as.numeric(1),
pch = as.numeric(Depth),
xlab = bquote("Concentration Cl ("*mu~"moles/g dry wt)"),
ylab = bquote("Average Conc of S- on plates ("~mu~"Moles/cm"^"2"*")"))