2017-06-28 6 views
4

Pour une raison quelconque, mes graphiques d'interaction ne semblent pas montrer les symboles grecs (latex) dans R markdown (en utilisant R studio). Le code que j'utilise est reproduit ci-dessous. Pourquoi les fonctions d'expression() ne fonctionnent-elles pas? Aucune suggestion?R: les symboles d'expression de plotmath n'apparaissent pas dans le graphique d'interaction

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

Impossible d'exécuter cela. Pouvez-vous également ajouter des données simulées? –

Répondre

0

Pour le titre, placez le tout dans expression. Par exemple, main = expression(paste("Interaction plot of ", mu[e], " f1")) ou main = expression(Interaction~plot~of~mu[e]~f1). Pour le trace.label, le expression n'est pas analysé correctement. Il semble que le problème est cette ligne dans le code pour interaction.plot:

text(xleg, ylim[2L] - 0.05 * yrng, paste(" ", trace.label), adj = 0) 

Alors trace.label est enveloppé dans paste qui transforme l'expression dans une chaîne de texte. Par exemple:

expression(mu[e]) 
# expression(mu[e]) 

paste(" ", expression(mu[e])) 
# " mu[e]" 

Pour contourner ce problème, vous pouvez modifier la fonction à utiliser trace.label comme il est. Pour ce faire, obtenez le code interaction.plot en tapant interaction.plot dans la console. Copiez le code dans un nouveau fichier de script R et affectez à la fonction un nouveau nom comme my_interaction_plot. Modifiez ensuite la ligne ci-dessus à ceci:

text(xleg, ylim[2L] - 0.05 * yrng, trace.label, adj = 0) 

Ce changement se traduira par expression(mu[e]) en cours d'analyse correctement.

Maintenant, il suffit d'utiliser my_interaction_plot au lieu de interaction.plot comme ceci:

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"))))