Obtenir des plots R dans LaTeX?

Je suis un débutant à la fois à R et à LaTeX et je viens tout juste de découvrir comment tracer un graphique de série chronologique standard en utilisant R et l’enregistrer en tant qu’image png. Ce qui m’inquiète, c’est que l’enregistrer en tant qu’image, puis l’incorporer dans LaTeX, va le mettre à l’échelle et le rendre laid.

Y a-t-il un moyen de faire en sorte que la fonction plot() de R produise un graphique vectoriel et l’intègre dans LaTeX? Je suis un débutant total dans les deux alors s’il vous plaît soyez doux 🙂 Les extraits de code sont très appréciés!

Shane est parfait, vous voulez Sweave. Finalement.

En tant que débutant, il est préférable de séparer les tâches. Pour cela, faites ceci:

  1. ouvrir un périphérique: pdf("figures/myfile.pdf", height=6, width=6) .
  2. tracer votre object R: plot(1:10, type='l', main='boring') – et rappelez-vous que lattice et ggplot ont besoin d’une print explicite autour du plot .
  3. important: fermez votre appareil: dev.off() pour finaliser le fichier.
  4. optionnel: inspecter le fichier pdf.
  5. dans LaTeX, utilisez usepackage{graphicx} dans l’en-tête du document, utilisez
    \includegraphics[width=0.98\textwidth]{figures/myfile} pour inclure la figure créée précédemment et notez que l’extension de fichier est facultative.
  6. lancez cela via pdflatex et profitez-en.

Je recommanderais le paquet tikzDevice pour produire une sortie à inclure dans les documents LaTeX:

http://cran.r-project.org/web/packages/tikzDevice/index.html

Le tikzDevice convertit les graphiques produits en R en code pouvant être interprété par le paquet tikz LaTeX. TikZ fournit un très bon système de dessin vectoriel pour LaTeX. Quelques bons exemples de sortie TikZ se trouvent à:

http://www.texample.net/

Le tikzDevice peut être utilisé comme tout autre périphérique graphique R:

 require( tikzDevice ) tikz( 'myPlot.tex' ) plot( 1, 1, main = '\\LaTex\\ is $\\int e^{xy}$' ) dev.off() 

Notez que les barres obliques inverses dans les macros LaTeX doivent être doublées car R interprète une seule barre oblique inverse comme un caractère d’échappement. Pour utiliser le tracé dans un document LaTeX, incluez-le simplement:

 \include{path/to/myPlot.tex} 

Le package pgfSweave contient la fonctionnalité Sweave qui peut gérer l’étape ci-dessus pour vous. Assurez-vous que votre document contient \usepackage{tikz} quelque part dans le préambule de LaTeX.

http://cran.r-project.org/

Les avantages de la fonction tikz() par rapport à pdf() sont:

  • La police des étiquettes et des légendes dans vos figures correspond toujours à la police utilisée dans votre document LaTeX. Cela donne un aspect unifié à votre document.

  • Vous disposez de toute la puissance du typographe LaTeX pour créer des annotations mathématiques et pouvez utiliser du code LaTeX arbitraire dans votre texte.

Les inconvénients de la fonction tikz() sont:

  • Il ne convient pas bien au traitement de plots comportant de nombreux composants. Ce sont des choses telles que les plots persp() des grandes masortingces. Le nombre de cisaillement des éléments graphiques peut entraîner un ralentissement de LaTeX ou une perte de mémoire.

  • Le paquet est actuellement marqué comme bêta. Cela signifie que l’interface ou la fonctionnalité du package est susceptible de changer si les auteurs trouvent une raison impérieuse de le faire.

Je devrais mettre fin à cet article en rejetant le fait que je suis un auteur des paquets tikzDevice et pgfSweave , donc mon opinion peut être biaisée. Cependant, j’ai utilisé les deux packages pour produire plusieurs rapports académiques au cours de la dernière année et j’ai été très satisfait des résultats.

Vous voudrez peut-être envisager d’utiliser Sweave . Il y a beaucoup de documentation géniale disponible pour cela sur le site Web de Sweave (et ailleurs). Sa syntaxe est très simple: il suffit de mettre votre code R entre <<>>= et @ .

Voici un exemple simple qui finit par ressembler à ceci :

 \documentclass[a4paper]{article} \title{Sweave Example 1} \author{Friedrich Leisch} \begin{document} \maketitle In this example we embed parts of the examples from the \texttt{kruskal.test} help page into a \LaTeX{} document: <<>>= data(airquality) library(ctest) kruskal.test(Ozone ~ Month, data = airquality) @ which shows that the location parameter of the Ozone dissortingbution varies significantly from month to month. Finally we include a boxplot of the data: \begin{center} <>= boxplot(Ozone ~ Month, data = airquality) @ \end{center} \end{document} 

Pour construire le document, vous pouvez simplement appeler le R CMD Sweave file.Rnw ou exécuter Sweave(file) depuis R.

Ceci est une dupe d’une question sur SO que je ne peux pas trouver.

Mais: http://r-forge.r-project.org/projects/tikzdevice/ – tikz sortie de r et http://www.rforge.net/pgfSweave/ code tikz via sweave.

Utiliser tikz vous donnera un aspect cohérent avec le rest de votre document, en plus il utilisera latex pour composer tout le texte de vos graphiques.

MODIFIER LaTeX dans les tracés R