Résolu : Utilisation de Sweave et Latex, pb avec les graphs

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Lorraine Bauer
Messages : 67
Enregistré le : 18 Nov 2008, 12:06

Résolu : Utilisation de Sweave et Latex, pb avec les graphs

Messagepar Lorraine Bauer » 01 Nov 2012, 18:18

Bonjour,

J'utilise depuis peu Latex et Sweave et j'ai un problème que je ne sais pas résoudre. J'ai créé une série de graphiques pour expliquer les principes de l'AVOVA et je veux les intégrer dans un doc Latex. Dans le graphique, j'utilise le symbole pch=21 (mais le pb est aussi présent avec pch=1, voir plus bas), d'autre part avec la fonction text(), j'affiche aussi une équation sur le graphique qui comporte le symbole de la somme.

Lorsque je teste le code dans R, tout va bien, en revanche quand j'essaye d'intégrer le graphe dans mon doc latex, le graphique ressort altéré, au lieux d'avoir des points de type pch=1, j'ai le symbole "p" à la place et de plus le symbole somme dans mon équation ne ressort pas, j'ai un point à la place ?!? Voici le code du graphique encadré des balises Sweave :


Code : Tout sélectionner

<<f1intro, echo = F, fig=T>>=

par(mar=c(1,1,1,1))

y1<-c(3,2,1,4)
x1<-c(5,7,9,10)
plot(x1,y1,ylim=c(0,10),xlim=c(-0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F)

y2<-c(7,5.5,8,3)
x2<-c(18,20,22,24)
par(new=T)
plot(x2,y2,ylim=c(0,10),xlim=c(0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F)

y3<-c(2,4,6,4.5)
x3<-c(31,33,35,37)
par(new=T)
plot(x3,y3,ylim=c(0,10),xlim=c(-0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes=F)

y4<-c(9,6.5,5.5,7.3)
x4<-c(44,46,48,50)
par(new=T)
plot(x4,y4,ylim=c(0,10),xlim=c(0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F,main="Somme des Carrés Total",cex.main=1)

##### SOMME DES CARRES TOTALE  ###################
segments(x1, y1, x1, mean(c(y1,y2,y3,y4)), col="grey")
segments(x2, y2, x2, mean(c(y1,y2,y3,y4)), col="grey")
segments(x3, y3, x3, mean(c(y1,y2,y3,y4)), col="grey")
segments(x4, y4, x4, mean(c(y1,y2,y3,y4)), col="grey")

lines(c(44,50),c(mean(y4),mean(y4)),lwd=2,col="tomato2")
lines(c(31,37),c(mean(y3),mean(y3)),lwd=2,col="tomato2")
lines(c(18,24),c(mean(y2),mean(y2)),lwd=2,col="tomato2")
lines(c(5,10),c(mean(y1),mean(y1)),lwd=2,col="tomato2")
lines(c(-2,54),c(mean(c(y1,y2,y3,y4)),mean(c(y1,y2,y3,y4))),lwd=2,col="blue")

text(2.5,mean(y1),"ctrl.",cex=1)
text(15.5,mean(y2),"trait. 1",cex=1)
text(28.5,mean(y3),"trait. 2",cex=1)
text(41.5,mean(y4),"trait. 3",cex=1)
text(5,mean(c(y1,y2,y3,y4)+0.3),"Grande moyenne",cex=1, col="blue",font=3)
text(43,1, expression(SC[T]==sum((x[i]-bar(x)[grande])^2, i==1, N)),cex=1.3)

@


Quelqu'un a-t-il déjà rencontré ce genre de problème ? Je vous remercie d'avance pour votre aide.
Lorraine

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 01 Nov 2012, 19:12

Aucun pn de mon côté, avec ce code:

Code : Tout sélectionner

\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}

\begin{document}

\begin{frame}[fragile]

  \begin{center}

<<fig=true, echo=false, results=hide>>=
par(mar=c(1,1,1,1))

y1<-c(3,2,1,4)
x1<-c(5,7,9,10)
plot(x1,y1,ylim=c(0,10),xlim=c(-0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F)

y2<-c(7,5.5,8,3)
x2<-c(18,20,22,24)
par(new=T)
plot(x2,y2,ylim=c(0,10),xlim=c(0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F)

y3<-c(2,4,6,4.5)
x3<-c(31,33,35,37)
par(new=T)
plot(x3,y3,ylim=c(0,10),xlim=c(-0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes=F)

y4<-c(9,6.5,5.5,7.3)
x4<-c(44,46,48,50)
par(new=T)
plot(x4,y4,ylim=c(0,10),xlim=c(0,52),pch=21,bg="grey90",col="grey40",cex=1.2,axes = F,main="Somme des Carrés Total",cex.main=1)

##### SOMME DES CARRES TOTALE  ###################
segments(x1, y1, x1, mean(c(y1,y2,y3,y4)), col="grey")
segments(x2, y2, x2, mean(c(y1,y2,y3,y4)), col="grey")
segments(x3, y3, x3, mean(c(y1,y2,y3,y4)), col="grey")
segments(x4, y4, x4, mean(c(y1,y2,y3,y4)), col="grey")

lines(c(44,50),c(mean(y4),mean(y4)),lwd=2,col="tomato2")
lines(c(31,37),c(mean(y3),mean(y3)),lwd=2,col="tomato2")
lines(c(18,24),c(mean(y2),mean(y2)),lwd=2,col="tomato2")
lines(c(5,10),c(mean(y1),mean(y1)),lwd=2,col="tomato2")
lines(c(-2,54),c(mean(c(y1,y2,y3,y4)),mean(c(y1,y2,y3,y4))),lwd=2,col="blue")

text(2.5,mean(y1),"ctrl.",cex=1)
text(15.5,mean(y2),"trait. 1",cex=1)
text(28.5,mean(y3),"trait. 2",cex=1)
text(41.5,mean(y4),"trait. 3",cex=1)
text(5,mean(c(y1,y2,y3,y4)+0.3),"Grande moyenne",cex=1, col="blue",font=3)
text(43,1, expression(SC[T]==sum((x[i]-bar(x)[grande])^2, i==1, N)),cex=1.3)
@

  \end{center}

\end{frame}

\end{document}


Ce qui produit ce résultat: https://dl.dropbox.com/u/44699235/test.pdf

Code : Tout sélectionner

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252    LC_MONETARY=French_France.1252 LC_NUMERIC=C                 
[5] LC_TIME=French_France.1252   

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.15.2


J'ai utilisé RStudio pour cet exemple.
Renaud

Lorraine Bauer
Messages : 67
Enregistré le : 18 Nov 2008, 12:06

Messagepar Lorraine Bauer » 01 Nov 2012, 20:23

Bonjour Renaud,
J'ai peut-être oublié de préciser un point : le graphique sauvegardé en pdf (à partir de R, je présume...) est parfait, toutefois le problème survient sur le pdf généré par Latex (j'utilise Texmaker dernière version).
Pour info, voici le code de l'entête de mon document, comme vous le voyez, c'est très classique :

Code : Tout sélectionner


\documentclass[a4paper,12pt]{report}

\usepackage[latin1]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[top=3cm, bottom=3cm, left=3cm, right=2cm]{geometry}
\usepackage{setspace}
\usepackage{titlesec} % style de titre (ici utilisé que pour les sections
\usepackage[Bjornstrup]{fncychap} % style de titre de chapitre
\usepackage{color}
\usepackage{pdfcolmk}
\usepackage{Sweave}

\title{Analyse de la variance avez R}
\date{\today}

%--------------- Style de titre, section, sous section...etc

\ChTitleVar{\raggedright\Large\sffamily\bfseries} % Début du titre de chapitre à droite (défaut left)
%\titleformat{\chapter}[display]{\bfseries}{\huge\chaptertitlename~\thechapter}{10pt}{\LARGE}
\titleformat*{\section}{\large\sffamily\bfseries}
\titleformat*{\subsection}{\normalsize\sffamily\bfseries}
\titleformat*{\paragraph}{\normalsize\sffamily\bfseries}

%---------------

\begin{document}
\begin{onehalfspace}


%---------------- Paramétrage de Sweave : couleur du code + gestion des graphiques

\DefineVerbatimEnvironment{Sinput}{Verbatim}{formatcom = {\color[rgb]{0, 0, 0.56}}}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{formatcom = {\color[rgb]{0.56, 0, 0}}}
\SweaveOpts{prefix.string = figs/figure, eps = FALSE, pdf = TRUE}
\setkeys{Gin}{width=0.6\textwidth}
%-----------------

\sffamily
\maketitle
\tableofcontents


Je n'utilise pas Rstudio en revanche. J'ai toutefois la dernière version de R :


Code : Tout sélectionner

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252   
[3] LC_MONETARY=French_France.1252 LC_NUMERIC=C                 
[5] LC_TIME=French_France.1252   

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.15.2


J'ai l'impression que le souci vient plutôt de Texmaker...

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 01 Nov 2012, 22:24

Lorraine Bauer a écrit :J'ai l'impression que le souci vient plutôt de Texmaker...


Oui. Je n'arrive pas à le faire fonctionner correctement sur les fichiers Sweave. Aucun pb avec Emacs ou RStudio.
Renaud

Lorraine Bauer
Messages : 67
Enregistré le : 18 Nov 2008, 12:06

Messagepar Lorraine Bauer » 02 Nov 2012, 13:51

Je viens de télécharger Rstudio et effectivement tout fonctionne parfaitement. Mais pourquoi n'ai-je pas travaillé avec Rstudio depuis le temps que je m'intéresse à R ???
Au passage, je voulais vous remercier Renaud, pour votre aide. J'ai souvent posé des questions ici, pas très souvent répondu à mon tour aux personnes qui en posaient (pas très experte quand même par rapport au haut niveau de bcp d'interventions ici). Bref, ce forum a été (et il l'est toujours !) d'une aide très précieuse pour moi et je tenais à le dire.
A bientôt

Lorraine :D

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 02 Nov 2012, 19:05

Lorraine Bauer a écrit :Je viens de télécharger Rstudio et effectivement tout fonctionne parfaitement. Mais pourquoi n'ai-je pas travaillé avec Rstudio depuis le temps que je m'intéresse à R ???Lorraine :D


Cela ne fait pas très longtemps que Sweave est bien supporté par RStudio donc vous n'avez pas perdu trop de temps :-)

NB: si vous commencez sous Sweave, je pense que ça vaut le coup de vous mettre tout de suite à knitr au lieu de Sweave. Le package disponible sur le CRAN et propose la même syntaxe (bouts de code délimités par des balises), mais intègre de nombreux utilitaires qui nécessitaient des packages R supplémentaires. Voir par exemple

http://www.youtube.com/watch?v=ovdP3AOE5AE
Renaud

Lorraine Bauer
Messages : 67
Enregistré le : 18 Nov 2008, 12:06

Messagepar Lorraine Bauer » 03 Nov 2012, 11:27

:) !!!

Stéphane Laurent
Messages : 1557
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 05 Nov 2012, 22:05

Je vois pas pourquoi il y aurait un problème avec TeXmaker. Il ne fait que lancer la commande (par défaut)

Code : Tout sélectionner

R CMD Sweave monfichier.Rnw

Si ça ne marche pas ce n'est pas la faute de TeXmaker.

Stéphane Laurent
Messages : 1557
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 05 Nov 2012, 22:08

Ah pardon je viens de voir que Lorraine a dit que le problème ne vient pas de la compilation Sweave. Mais même remarque: TeXmaker ne fait que lancer une commande, et celle-ci est configurable.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité