绘图轴标题上的特殊字符和上标
Posted
技术标签:
【中文标题】绘图轴标题上的特殊字符和上标【英文标题】:Special characters and superscripts on plot axis titles 【发布时间】:2013-03-22 02:38:15 【问题描述】:我正在尝试使用特殊字符和上标制作 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)
【问题讨论】:
【参考方案1】:用户经常无法理解的一件事是,当用于情节标签的表达式时,您总是不需要将字符串和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)
生产
【讨论】:
【参考方案2】:这样就解决了上标右括号的问题:
# 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"*")"))
【讨论】:
bquote
在这里有点矫枉过正。 expression
应该可以正常工作。 bquote
在想要将表达式中的对象替换为其值时最有用。
@GavinSimpson,谢谢,很高兴知道!看起来expression
在空格字符方面也比bquote
做得更好,我的情节括号附近有一些奇怪的空格...
那是因为您使用~ mu ~
来分隔两个带引号的字符串。如果您将其设置为* mu ~
,您将获得正确的间距。 ~
是空格运算符,*
将参数并列(即没有空格)。以上是关于绘图轴标题上的特殊字符和上标的主要内容,如果未能解决你的问题,请参考以下文章