出于某种原因,我的交互图似乎没有显示R markdown中的希腊符号(乳胶)(使用R studio)。我正在使用的代码转载如下。为什么expression()函数不起作用?有什么建议吗?
with(ba_results, interaction.plot(as.factor(f1), as.factor(f2),
y,
type = "b",
pch = c(18, 19, 24),
fixed = TRUE,
xlab = "Scale factor",
ylab = "Mean Response",
trace.label = expression(mu_e),
main = paste("Interaction plot of",
expression(mu[e]),
"f1")))
答案 0 :(得分:0)
对于标题,将整个内容包装在expression
中。例如,main = expression(paste("Interaction plot of ", mu[e], " f1"))
或main = expression(Interaction~plot~of~mu[e]~f1)
。
对于trace.label
,expression
未正确解析。问题似乎是interaction.plot
的代码中的这一行:
text(xleg, ylim[2L] - 0.05 * yrng, paste(" ", trace.label), adj = 0)
所以trace.label
包含在paste
中,它将表达式转换回文本字符串。例如:
expression(mu[e])
# expression(mu[e])
paste(" ", expression(mu[e]))
# " mu[e]"
作为解决方法,您可以修改函数以使用trace.label
。为此,请通过在控制台中键入interaction.plot
来获取interaction.plot
的代码。将代码复制到新的R脚本文件中,并为该函数指定一个新名称,如my_interaction_plot
。然后将上面的行更改为:
text(xleg, ylim[2L] - 0.05 * yrng, trace.label, adj = 0)
此更改将导致expression(mu[e])
正确解析。
现在只需使用my_interaction_plot
代替interaction.plot
,就像这样:
with(ba_results,
my_interaction_plot(as.factor(f1), as.factor(f2), y, type = "b",
pch = c(18, 19, 24), fixed = TRUE,
xlab = "Scale factor", ylab = "Mean Response",
trace.label = expression(mu_e),
main = expression(paste("Interaction plot of ", mu[e], " f1"))))