12
votes

Comment puis-je inclure des parcelles R compliquées dans un document de latex?

J'ai le problème avec l'extrait de code suivant: xxx

où "myScatterPlot.pdf" est généré par le code suivant dans R: xxx < / pré>

Le problème est que le document de latex résultant lors de la compilation de Texworks (PDFLATEX + Makeindex + Bibtex) présente les axes de graphes, mais aucun des points de la parcelle ou des étiquettes de l'axe (dans ce cas, ce n'est que le Axes 3D eux-mêmes). Il n'y a pas de messages d'erreur ni de messages d'avertissement par r ou latex. J'utilise:

  • R 2.12.1 sur Windows 7,
  • MIKTEX 2.8,
  • texworks
  • Adobe Reader 9 (pas sûr si c'est pertinent ...)

    J'ai pu utiliser la commande \ inclugraphics pour inclure une version PNG de la figure et l'ouverture "myScatterPlot.pdf" avec Adobe montre la figure que je veux dans mon document.

    J'ai essayé d'utiliser le paquet Tikz comme solution de contournement, mais il semble qu'il existe tant d'informations générées par SatterPot3D que la figure résultante ne peut pas être incluse dans le document de latex en raison de la taille de la mémoire (erreur (mon tracé réel aura 10000 points !).

    J'ai une suspicion que le problème est dû aux polices du fichier ".pdf", mais j'ai essayé de modifier les polices PDF à l'aide de xxx

    avec précisément le même résultat lorsque vous utilisez \ inclugarélégraphics (Changefont.pdf).

    L'autre problème possible que je considère est que la sortie SatternPlot3D est peut-être plusieurs images, et \ inclugraphics est seulement Prendre la première des figures (les axes) du fichier PDF. Dans ce cas, je ne suis toujours pas sûr de savoir comment travailler autour de lui.

    J'apprécierais vraiment une solution de contournement, comme je serais D Aimez-vous finalement faire tout cela avec Sweave et cela me rend amer vers la sortie autrement belle du paquet!

    Merci d'avance pour vos réponses.

    Editer 1:

    Donc, la première recommandation était d'utiliser le format EPS au lieu de PDF. Cela a donné des résultats, mais pas ce que je voulais. J'ai couru ce qui suit: xxx

    i généré "changements.eps" à l'aide xxx

    ceci a fait donner une amélioration (malgré le fait que cela, assez, a fait pivoter la parcelle de 90 degrés dans le sens des aiguilles d'une montre dans la sortie du latex!), et j'ai maintenant les axes et les points de la diffamation de la sortie en latex! Cependant, les étiquettes de l'axe ne sont toujours pas sur la figure, même si j'ai ouvert "Change.eps" à l'aide de GhostView, et les axes sont dans la parcelle! Il semble que la façon dont SCARTPLOT3D sorties Les chiffres ne sont pas d'accord avec la manière \ includegraphics recherchées pour des figures ...

    Donc, je cherche toujours une solution à ceci qui comprendra des étiquettes d'axes.


2 commentaires

Je sais que cela ne répondra pas à votre question, mais si j'étais vous, je n'inclurais pas de complot avec 10 000 points de format vectorisé, car le PDF résultant serait vraiment énorme. Enregistrez votre parcelle en PNG avec une résolution appropriée (comme vous l'avez fait) et inclure cette image dans votre document.


Juste que vous savez: votre code d'exemple original fonctionne parfaitement avec Ubuntu 10.10 (R 2.12.1 TexLive 2009). Vous pouvez essayer de mettre à jour à miktex 2.9 et voir si cela aide.


6 Réponses :


1
votes

Si vous souhaitez insérer des images PDF dans votre fichier, je pense que vous devez utiliser pdflatex au lieu de latex standard. Si cela n'est pas installé, j'essaierais de générer les chiffres du format EPS de R, au lieu de PDF.


3 commentaires

Il dit qu'il utilise Pdflatex et que le problème est que les étiquettes manquent.


Oui, j'utilisais Pdflatex. J'ai mis à jour le message avec les résultats de votre suggestion (il y avait un certain succès, mais pas ce que je cherchais tout à fait ...)


Désolé, il faut tard et j'ai négligé ce point plutôt important.



1
votes

Je me souviens de lutter avec un problème similaire. Je ne me souviens pas si je pouvais voir des étiquettes sur la figure cependant. En regardant en arrière au code, il existe deux paramètres que j'ai modifiés au niveau r: xxx pré>

aussi pour PostScript pour ne pas avoir de graphiques tournant de 90 degrés: P>

postscript(file="xx.eps", horizontal=FALSE)


0 commentaires

5
votes

En regardant MyScatterPlot.pdf tel que généré avec les commandes que vous avez répertoriées, les axes et les étiquettes sont là. Cependant, le PDF est plutôt grand (7in x 7in).

aide-t-il si vous jouez avec les paramètres de poids / hauteur sur pdf ()? xxx


3 commentaires

@RGUY - Je pense que le conseil de Karsten résoudra votre problème. Je suis sur Win7 avec Miktex2.9. Le téXworks PDF Viewer ne montre pas les points. Acrobat Reader affiche les points, mais la taille de la parcelle par défaut est trop grande et que les étiquettes d'axe de droite sont coupées. Changer l'échelle rend l'apparition correctement dans Acrobat Reader. Je ne pense pas que cela apparaisse jamais correctement dans le spectateur PDF Texworks.


@RGUY - Si vous êtes vendu sur R et latex (et finalement, Sweaver) à long terme, je suggère de vérifier Emacs et ESS. Je pense que beaucoup d'ici utilisent cette configuration et cela peut vous suivre à chaque plate-forme (Win, Mac, Linux). Une fois que vous aurez sur la bosse, je pense que vous serez vraiment heureux. Fwiw J'utilise GVIM 7.3 (j'ai du mal avec les raccourcis Emacs) avec la suite de latex et les plugins Vim R et SumatraPDF comme mon téléspectateur. SumataPDF est léger et supporte Synctex, qui peut être utile.


La solution indiquée par Karsten n'a pas fonctionné, mais merci de la suggestion. J'ai résolu ce problème avec la suggestion de @Richardh que le PDF ne s'affiche pas correctement dans la visionneuse PDF de Miktex. Je n'ai pas estimé que cela pourrait être le problème. Il s'avère que cela se présente très bien lorsqu'il est ouvert avec Adobe! Je me demande si c'était un bogue dans la visionneuse de Miktex, c'est un problème assez étrange que Miktex peut générer le complot correct mais ne l'affiche pas.



3
votes

Vous pouvez essayer Sweave: http://www.statistik.lmu.de/~ Leisch / Sweave / (Sweed est un outil permettant d'intégrer le code R pour des analyses de données complètes dans les documents de latex)


2 commentaires

Une belle introduction à Sweave ici aussi: r-bloggers.com/...


Vous pouvez également utiliser le package tikzdecive pour stocker l'image dans un fichier Tex pouvant être importé dans des documents de latex.



4
votes

Il s'agit d'une note latérale liée au latex supérieur à sa mémoire disponible.

Je viens d'utiliser votre exemple avec le tikzdevice pour effectuer des tests de résistance et on dirait que les résultats sont assez dépendants de quel moteur Tex est utilisé. De note particulière est LUNTEX , le sucesseur à pdftex , qui s'est avéré capable de manipuler des parcelles avec de nombreux éléments graphiques.

  • pdflatex :

    a fait passer à travers une parcelle avec 1000 points, dépassé la mémoire et est décédé à 10 000.

  • xelatex :

    a également dépassé la mémoire et est morte à 10 000 points.

  • luchatex :

    a mâché 10 000 points en ~ 45 secondes et produit un fichier PDF de 1 Mo. Élagué à 100,00 points (un fichier d'entrée de 10 Mo) dans environ 7,5 minutes, cassez un fichier PDF de 8,5 Mo et a culminé à environ 750 Mo d'utilisation de la mémoire. N'a pas essayé le 1 million de référence.

    Il ressemble à pdftex et xetex allouer toute leur mémoire à l'avance lorsque les canalisations de programme et c'est tout ce qu'ils auront jamais obtenu. Ledex D'autre part semble pouvoir allouer de manière dynamique la mémoire et ne serait donc contraint que par la quantité de RAM disponible.

    donc, si pdflatex vous donne des erreurs "hors mémoire", essayez de prendre lualatex pour un spin!


    ces tests ont été effectués à l'aide de compilateurs Tex inclus dans la distribution Tex Live 2010. Je suis aussi l'un des auteurs du Tikzdevice


0 commentaires

1
votes

Je suis venu ici avec le même problème (Texworks, Pdflatex, Windows 7). Et j'ai trouvé quelque chose d'intéressant: lorsque je démarre pour la première fois au latex, les chiffres sont apparus avec des axes et tout, et lorsque je réaffirme le PDFLATEX, les axes ont encore disparu. Cela m'a donné un hunch et je l'ai compris: même si l'aperçu du latex ne montre pas les axes, le format PDF fait. Et vous n'avez même pas besoin de dire à la commande includegraphics code> que les graphiques sont au format PDF.

pdf("C:/Users/Orr/Documents/Leiden University/Master thesis/Chapters/Images/bioRes/Boxplots mouse raw data.pdf")
boxplot(mouse_data_raw,main="Mouse raw data")
dev.off()

\begin{figure}[t]
\includegraphics[scale=0.5]{mouse-box-raw}
\includegraphics[scale=0.5]{human-box-raw}
\end{figure}


0 commentaires