Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 打印轴标题上的特殊字符和上标_R_Plot_Superscript_Plotmath - Fatal编程技术网

R 打印轴标题上的特殊字符和上标

R 打印轴标题上的特殊字符和上标,r,plot,superscript,plotmath,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(p

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

这解决了超级脚本右括号的问题:

# 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"*")"))
#可复制数据

图版用户经常无法理解的一件事是,在打印标签的表达式中使用时,通常不需要引用字符串并将它们粘贴在一起。直接使用布局工具通常更简单(例如
~
*
)。例如:

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)))
但是请注意,这里不需要粘贴字符串和其他功能

两者都产生:

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

op
bquote
在这里有点过分了<代码>表达式
应该可以正常工作
bquote
在需要将表达式中的对象替换为其值时最有用。@GavinSimpson,谢谢,很高兴知道!看起来
expression
bquote
在空格字符方面也做得更好,我在绘图的括号附近有一些奇怪的空格…这是因为您使用
~mu~
来分隔两个带引号的字符串。如果您将其设置为
*mu~
,您将获得正确的间距
~
是一个空格运算符,
*
将参数并置(即没有空格)。
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)