情节轴标题上的特殊字符和上标

时间:2013-04-01 01:08:21

标签: r plot superscript plotmath

我正在尝试使用特殊字符和上标来制作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)

2 个答案:

答案 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字符串和其他功能。

两者都产生:

enter image description here

请注意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)

生产

enter image description here

答案 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"*")"))

enter image description here