69 votes

Se R parcelles en LaTeX?

Je suis un débutant à la fois R et de LaTeX et ont récemment découvert comment tracer un standard graphique de la série chronologique à l'aide de R et l'enregistrer comme une image png. Ce qui m'inquiète, c'est que de l'enregistrer comme une image, puis en l'intégrant dans le LaTeX va à l'échelle et de le rendre moche.

Est-il un moyen de faire de la R plot() de la fonction de sortie d'un graphique vectoriel et l'incorporer en LaTeX? Je suis un total débutant dans les deux, de sorte s'il vous plaît être doux :) des extraits de Code sont très appréciés!

61voto

Sharpie Points 6291

Je recommande l' tikzDevice paquet pour la production pour l'inclusion dans les documents LaTeX:

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

Le tikzDevice convertit les graphiques produites dans la R de code qui peut être interprété par le paquet LaTeX tikz. TikZ offre un très beau dessin vectoriel système pour le LaTeX. Quelques bons exemples de TikZ de sortie sont situés à:

http://www.texample.net/

L' tikzDevice peut être utilisé comme tout autre R des graphiques de l'appareil:

require( tikzDevice )

tikz( 'myPlot.tex' )

plot( 1, 1, main = '\\LaTex\\ is $\\int e^{xy}$' )

dev.off()

Notez que les barres obliques inverses en LaTeX macros doivent être doublé R interprète une seule barre oblique inverse comme un caractère d'échappement. L'utilisation de la parcelle de terrain dans un document LaTeX, il suffit de l'inclure:

\include{path/to/myPlot.tex}

L' pgfSweave paquet contient Sweave fonctionnalités qui peuvent 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 l' tikz() de la fonction par rapport à l' pdf() sont:

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

  • Vous avez toute la puissance de l'LaTeX maquettiste disponibles pour la création de mathématiques et d'annotation pouvez utiliser arbitraire du code LaTeX dans votre figure de texte.

Les inconvénients de l' tikz() fonction sont les suivantes:

  • Il n'est pas bien à gérer des parcelles avec beaucoup de composants. Ce sont des choses telles que l' persp() des parcelles de grande matricies. Le nombre de cisaillement des éléments graphiques peuvent causer de LaTeX pour ralentir à une exploration ou de manquer de mémoire.

  • Le package est actuellement signalé que la bêta. Cela signifie que l'interface ou des fonctionnalités de l'est sujet à changement si les auteurs trouver une raison impérieuse de le faire.

Je dois terminer ce post en niant que je suis un auteur à la fois de l' tikzDevice et pgfSweave packages donc mon avis peut être biaisée. Cependant, j'ai utilisé les deux paquets de produire plusieurs rapports universitaires dans la dernière année et ont été très satisfaits des résultats.

58voto

Dirk Eddelbuettel Points 134700

Shane est sur place, vous ne voulez Sweave. Finalement.

Comme un débutant, vous pouvez mieux séparer les tâches. Pour cela, faites ceci:

  1. ouvrir un périphérique: pdf("figures/myfile.pdf", height=6, width=6)
  2. l'intrigue de votre objet R: plot(1:10, type='l', main='boring') - et souvenez-vous que les treillis et ggplot besoin explicite print autour plot.
  3. important: fermez votre appareil: dev.off() afin de finaliser le dossier.
  4. en option: inspecter le fichier pdf
  5. en LaTeX, utilisez usepackage{graphics} dans l'en-tête du document, l'utilisation
    \includegraphics[width=0.98\textwidth]{figures/myfile} d'inclure la figure créé précédemment, et note que l'extension du fichier est facultatif
  6. exécuter ce par le biais pdflatex et profiter d'

22voto

Shane Points 40885

Vous pourriez vouloir considérer l'utilisation de Sweave. Il y a beaucoup de documentation disponible à cet effet sur le Sweave site web (et ailleurs). Il a très syntaxe simple: il suffit de mettre votre R code entre <<>>= et @.

Voici un exemple simple qui finit par ressembler à cela:

\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 
distribution varies significantly from month to month. Finally we
include a boxplot of the data:

\begin{center}
<<fig=TRUE,echo=FALSE>>=
boxplot(Ozone ~ Month, data = airquality)
@
\end{center}

\end{document}

Pour créer le document, vous pouvez les appeler R CMD Sweave file.Rnw ou exécutez Sweave(file) de dans R.

3voto

Mica Points 7392

C'est un dupe d'une question sur l', de SORTE 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/ tikz code via sweave.

À l'aide de tikz vous donnera un look cohérent avec le reste de votre document, plus il va utiliser latex pour composer ensemble du texte dans vos graphiques.

MODIFIER http://stackoverflow.com/questions/1395105/getting-latex-into-r-plots/1395553#1395553

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