Je suis novice à la fois pour R et LaTeX et j'ai récemment découvert comment tracer un graphique de série chronologique standard à l'aide de 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.
Existe-t-il un moyen de faire de la fonction plot()
de R un graphique vectoriel et de l'intégrer dans LaTeX? Je suis un débutant total dans les deux, alors soyez gentil :) Les extraits de code sont très appréciés!
Shane est parfait, vous voulez Sweave. Finalement.
En tant que débutant, vous feriez mieux de séparer la tâche. Pour cela, faites ceci:
pdf("figures/myfile.pdf", height=6, width=6)
.plot(1:10, type='l', main='boring')
- et rappelez-vous que lattice et ggplot ont besoin d'un print
explicite autour de plot
.dev.off()
pour finaliser le fichier.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.pdflatex
et profitez-en.Je recommanderais le package 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 qui peut être interprété par le package LaTeX tikz
. TikZ fournit un très joli système de dessin vectoriel pour LaTeX. Quelques bons exemples de sortie TikZ se trouvent à:
tikzDevice
peut être utilisé comme n'importe quel 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 barre oblique inverse unique 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.
Les avantages de la fonction tikz()
par rapport à la fonction 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 de la typographe LaTeX pour créer des annotations mathématiques et pouvez utiliser du code LaTeX arbitraire dans le texte de votre figure.
Les inconvénients de la fonction tikz()
sont:
Il ne s'adapte pas bien pour gérer des parcelles avec beaucoup de composants. Ce sont des choses comme persp()
parcelles de grandes matricies. Le nombre de cisaillement des éléments graphiques peut ralentir LaTeX à une analyse ou manquer de mémoire.
Le package est actuellement marqué en version 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 terminer ce post en niant que je suis un auteur des packages 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 disponible sur le site Web 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 ressemblant à 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
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 simplement appeler R CMD Sweave file.Rnw
Ou exécuter Sweave(file)
à partir de 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/ - sortie tikz de r et http://www.rforge.net/pgfSweave/ code tikz via sweave.
L'utilisation de tikz vous donnera un aspect cohérent avec le reste de votre document, en plus il utilisera du latex pour composer tout le texte de vos graphiques.
[~ # ~] modifier [~ # ~] Obtenir LaTeX dans les tracés R