Question

Je suis en train de créer un sweave rapport qui contient des graphiques fait avec ggplot2.Si je suis à la recherche pour certains de l'environnement pour le long terme – je viens d'utiliser un simple .Rnw fichier qui ne contient que le code et l'intrigue

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}

Malheureusement, le graphique n'est pas créé, je seulement obtenir un corrompu .pdf et .fichier eps.Si je reçois une jolie .fichier tex qui semble fonctionner, sauf pour les graphismes.J'utilise la suite de code de base pour la créer:

 Sweave("myfile.Rnw")

J'ai juste trouvé quelques vieux poste sur le web, qui étaient en train de discuter des problèmes avec la transparence et la sweave / ggplot2 mais rien de ce qui pourrait avoir aidé.J'ai aussi essayé de l'ambiance détendue de paquet, qui n'a pas aidé non plus.Btw, est-il des news sur decumar paquet?

Était-ce utile?

La solution

qplot() produit des objets, pas une sortie graphique.Il peut sembler comme il le fait lorsque vous exécuter, mais c'est parce que sans affectation, R est automatiquement l'impression de la sortie de qplot().Pour l'intégrer dans Sweave, soit wrap print() autour de qplot(), ou affecter la sortie de qplot() à quelque chose, puis les envelopper que dans print().

...
<<fig = T, echo = F>>=
 library(ggplot2)
 x=rnorm(100)
 p <- qplot(x)
 print(p)
@
...

Cela devrait fonctionner.J'utilise ggplot2 graphiques dans mon sweave docs tout le temps.

Autres conseils

Vous avez les enrouler autour de print() pour le faire fonctionner dans sweave.

En réalité, alors que les deux réponses précédentes sont correctes, votre problème est autre chose.

Vous devez vous assurer que tout le bloc de code est à gauche de la page (en dehors de l'iondentation dans les fonctions).Encore une fois, je ne sais pas pourquoi, mais cela provoque des problèmes de Sweave.

Après avoir veillé à ce que tous les codes (et l'en-tête / pied de page pour le morceau de code) se trouvaient à gauche de la page (et ajoutant une instruction d'impression), votre exemple fonctionne pour moi.

Incidemment, j'ai appris aujourd'hui que vous pouvez créer un environnement autour de votre code dans les documents Sweave (que je n'étais pas au courant et je me sauvera beaucoup de temps).Bon vieux Stackoverflow, vous apprenant quelque chose de nouveau, même lorsque vous répondez à une question!

J'espère que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top