从向量中绘制带有希腊符号的轴标签
Posted
技术标签:
【中文标题】从向量中绘制带有希腊符号的轴标签【英文标题】:Plotting axis labels with Greek symbols from a vector 【发布时间】:2012-05-23 19:50:11 【问题描述】:我正在努力尝试将希腊符号绘制为轴标签。由于要循环几个不同比例的图,我想使用一个包含符号名称的向量,而不是在expression()
中使用符号名称,这样可以正常工作:
x <- rnorm(10, 5,6)
y <- rnorm(10, 2,1)
xlab <- expression(paste(mu, "mol/mol"))
plot(x,y, xlab = xlab)
由于某种原因,我无法将“mu”替换为包含符号名称的向量:
k <- "mu"
xlab <- expression(paste(get(k), "mol/mol"))
plot(x,y, xlab = xlab)
我找到了一个类似的question,但对函数有效的方法似乎不适用于希腊符号:
ylab <- substitute(paste(nn, "mol/mol"), list(nn=k))
xlab <- bquote(.(k) * "mol/mol")
plot(x,y, ylab = ylab, xlab = xlab)
我做错了什么?如何通过向量获取希腊符号到轴标签?
【问题讨论】:
表达式是一个原始函数。它不评估它的论点。 this Q&A 有帮助吗? @fotNelton:这至少行不通:ylab 请注意,问题的真正原因在于k = "mu"
是您希望将其解释为表达式的字符串。如果你有k = quote(mu)
,那么xlab = bquote(.(k)*mol/mol)
就可以了。
@Largh:可能有一点误解。我的意思是指出您使用parse
。
【参考方案1】:
试试这个:
xlab = parse(text=paste(k, "*mol/mol"))
【讨论】:
有人可以解释为什么*
是必要的以及它的作用吗?
?plotmath
建议在x*y
中用于“x 和 y 并列”,即一个接一个(没有空格)。
~
会增加空间,以防您需要以上是关于从向量中绘制带有希腊符号的轴标签的主要内容,如果未能解决你的问题,请参考以下文章
如何在 matplotlib 条形图中用希腊符号替换主轴和次轴的图例标签?