132 votes

Intégration de LaTeX dans les graphiques R

Je voudrais ajouter LaTeX la composition des éléments des parcelles dans R (par exemple : le titre, les étiquettes d'axe, les annotations, etc.) en utilisant soit la combinaison des éléments suivants base/lattice ou avec ggplot2 .

Questions :

  • Y a-t-il un moyen d'obtenir LaTeX dans des parcelles à l'aide de ces paquets, et si oui, comment s'y prend-on ?
  • Si ce n'est pas le cas, des paquets supplémentaires sont-ils nécessaires pour y parvenir ?

Par exemple, dans Python matplotlib compile LaTeX via le text.usetex comme indiqué ici : http://www.scipy.org/Cookbook/Matplotlib/UsingTex

Existe-t-il un processus similaire permettant de générer de tels tracés en R ?

1 votes

Ce tutoriel pourrait vous convenir (il a fait des merveilles pour moi :) ) : r-bloggers.com/latex-en-r-graphes

0 votes

Ce paquet pour convertir LaTeX en graphiques peut être utile : github.com/stefano-meschiari/latex2exp

49voto

Christopher DuBois Points 7589

Voici un exemple utilisant ggplot2 :

q <- qplot(cty, hwy, data = mpg, colour = displ)
q + xlab(expression(beta +frac(miles, gallon)))

alt text

21 votes

Malheureusement, il est loin d'offrir toutes les fonctionnalités de LaTeX.

0 votes

Quelle est la situation actuelle ? Je pense que ça s'est un peu amélioré avec R 3.1.1.

37voto

Christopher DuBois Points 7589

Comme volé à aquí la commande suivante utilise correctement LaTeX pour dessiner le titre :

plot(1, main=expression(beta[1]))

Ver ?plotmath pour plus de détails.

12 votes

Intéressant, également de bonnes choses avec demo(plotmath) Donc la notation mathématique doit être réinterprétée par la syntaxe de plotmath ? Cela semble être une perte de temps considérable, surtout si vous avez une expression LaTeX complexe. C'est pourquoi j'aime la capacité de matplotlib à compiler LaTeX lui-même. Existe-t-il quelque chose qui puisse prendre LaTeX et générer la syntaxe de plotmath ?

0 votes

Pas à ma connaissance. Il y a un article intéressant sur RWiki concernant l'utilisation de latex avec ggplot2 : wiki.r-project.org/rwiki/

15voto

Mica Points 7392

Vous pouvez générer du code tikz à partir de R : http://r-forge.r-project.org/projects/tikzdevice/

0 votes

Je viens de découvrir que le paquet a été retiré du CRAN.

0 votes

Il semble que le paquet soit toujours disponible sur r-forge. De plus, il est disponible ici : github.com/Sharpie/RTikZDevice

7voto

Christopher DuBois Points 7589

Voici une solution, proposée par Frank Harrell :

http://biostat.mc.vanderbilt.edu/wiki/Main/PsFrag

4voto

mwrowe Points 31

Voici une fonction sympa qui vous permet d'utiliser la fonctionnalité plotmath, mais avec les expressions stockées en tant qu'objets du mode caractère. Cela vous permet de les manipuler par programme en utilisant des fonctions de collage ou d'expression régulière. Je n'utilise pas ggplot, mais cela devrait fonctionner là aussi :

    express <- function(char.expressions){
       return(parse(text=paste(char.expressions,collapse=";")))
    }
    par(mar=c(6,6,1,1))
    plot(0,0,xlim=sym(),ylim=sym(),xaxt="n",yaxt="n",mgp=c(4,0.2,0),
       xlab="axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)",
       ylab="axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)")
    tick.labels <- paste("x >=",(-9:9)/10)
    # this is what you get if you just use tick.labels the regular way:
    axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)
    # but if you express() them... voila!
    axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X