R:在交互图中未显示的plotmath表达符号

时间:2017-06-28 04:11:31

标签: r plot plotmath

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

1 个答案:

答案 0 :(得分:0)

对于标题,将整个内容包装在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"))))