从向量中绘制带有希腊符号的轴标签

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 条形图中用希腊符号替换主轴和次轴的图例标签?

如何解决重叠的轴刻度标签

从多个指标(相同的标签集,不同的名称)绘制 rate() 时如何避免“向量不能包含具有相同标签集的指标”错误

在相同的轴上绘制不同的 facecolor

如何在散景中绘制纬度和经度

更改seaborn热图的轴标签[重复]