R:绘图数学表达式符号未显示在交互图中

R: plotmath expression symbols not showing up in interaction plot

出于某种原因,我的交互图似乎没有在 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")))

对于标题,将整个内容包装在 expression 中。例如,main = expression(paste("Interaction plot of ", mu[e], " f1"))main = expression(Interaction~plot~of~mu[e]~f1)

对于 trace.labelexpression 没有被正确解析。看起来问题是 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"))))