visualiser à l'écran un graphe au format "windows"

Questions sur les fonctions graphiques de R

Modérateur : Groupe des modérateurs

Tillard
Messages : 87
Enregistré le : 17 Déc 2004, 10:32

visualiser à l'écran un graphe au format "windows"

Messagepar Tillard » 21 Fév 2006, 15:05

Bonjour
existe-il un moyen de visualiser à l'écran un graphe au format "windows" ?
ci joint un exemple


Code : Tout sélectionner

library(nlme)
Orthodont
plot1 <- plot2 <- plot3 <- plot4 <- xyplot(distance ~ age | Sex, Orthodont)


trellis.device(device = "win.metafile", color = F, width=18,height=20,
    file = "d:multigraph.wmf")
sb <- trellis.par.get("strip.background")
sb$col <- 0
trellis.par.set("strip.background", sb) 
print(plot1,split=c(1,1,2,2),more=T)
print(plot2,split=c(2,1,2,2),more=T)
print(plot3,split=c(1,2,2,2),more=T)
print(plot4,split=c(2,2,2,2),more=F)
dev.off()



trellis.device(theme=col.whitebg)
print(plot1,split=c(1,1,2,2),more=T)
print(plot2,split=c(2,1,2,2),more=T)
print(plot3,split=c(1,2,2,2),more=T)
print(plot4,split=c(2,2,2,2),more=F)


le graphe du fichier multigraph.wmf après import dans powerpoint ou dans word est tres different de ce que l'on peut visualiser a l'ecran (la taille des etiquettes des abcisses et des ordonnées , des etiquettes des axes et des titres n'est pas la même).
Le but: pouvoir faire rapidement des réglages fins des graphes avant export dans un texte
merci d'avance

Emmanuel
Emmanuel Tillard
UMR ERRC (Elevage des Ruminants en Regions Chaudes)
CIRAD - St PIERRE (La Réunion)
tel: 02 62 49 92 54

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

Messagepar Renaud Lancelot » 22 Fév 2006, 17:48

Salut Manu,

Possible depuis les logiciels de visualisation de fichiers graphiques, comme Paint Shop Pro ou XnView (http://perso.wanadoo.fr/pierre.g/xnview/frhome.html), mais pas possible depuis R.

Amicalement,

Renaud

Romain François
Messages : 42
Enregistré le : 08 Déc 2005, 19:23
Contact :

Messagepar Romain François » 25 Fév 2006, 14:29

Bonjour,

Je n'ai pas accès à Windows, donc je n'ai ni le device `windows` ni le device `win.metafile`.
Peut être que quelq'un pourra adapter ma solution.

Alors, voila :

Code : Tout sélectionner

require(nlme)
require(lattice)

Orthodont
plot1 <- plot2 <- plot3 <- plot4 <- xyplot(distance ~ age | Sex, Orthodont)

trellis.device(theme=col.whitebg)
print(plot1,split=c(1,1,2,2),more=T)
print(plot2,split=c(2,1,2,2),more=T)
print(plot3,split=c(1,2,2,2),more=T)
print(plot4,split=c(2,2,2,2),more=F)


Sur ma fedora, ca m'ouvre un device `x11`. Je m'amuse à redimensionner la fenetre, etc ... et je veux exporter ca en `png`.

Si je fais directement

Code : Tout sélectionner

dev.copy(png)
dev.off() # pour fermer le fichier png


ca marche, mais en fait pas vraiment puisque ça me prends les dimensions par défaut du device `png`, c'est à dire : width=480, height=480

Il ne reste plus qu'à récupérer les vraies dimensions du graphique tel qu'il est maintenant (je l'ai redimensionné), et ensuite faire un dev.copy mais cette fois-ci avec les bonnes infos de taille

Code : Tout sélectionner

dims <- par('din') / 7 *480  # c'est juste une règle de 3
dev.copy(png, width=dims[1], height=dims[2] )
dev.off()


Il ne reste plus qu'à voir si ça marche avec `windows` et `win.metafile` et à adapter ;-) la règle de trois.

Romain
--
Romain François
Consultant R Indépendant
http://romainfrancois.blog.free.fr

Tillard
Messages : 87
Enregistré le : 17 Déc 2004, 10:32

dimensionnement des graphiques

Messagepar Tillard » 27 Fév 2006, 12:39

Merci Romain pour ta reponse

sous windows, j'ai fait un petit essai utilisant par("din")

je sous dimensionne volontairement le graphe suivant

Code : Tout sélectionner

trellis.device(device = "windows", color=F, width=3, height=3, pointsize=12, rescale="R")
sb <- trellis.par.get("strip.background")
sb$col <- 0
trellis.par.set("strip.background", sb) 
print(plot1,split=c(1,1,2,2),more=T)
print(plot2,split=c(2,1,2,2),more=T)
print(plot3,split=c(1,2,2,2),more=T)
print(plot4,split=c(2,2,2,2),more=F)


puis je redimensionne le graphique avec la souris (option rescale="R") jusqu'à avoir un graphe potable(strip.text visible, tous les abscisses visibles)
puis

Code : Tout sélectionner

dims <- par("din")

trellis.device(device = "windows", color=F, width=dims[1], height=dims[2], pointsize=12)
sb <- trellis.par.get("strip.background")
sb$col <- 0
trellis.par.set("strip.background", sb) 
print(plot1,split=c(1,1,2,2),more=T)
print(plot2,split=c(2,1,2,2),more=T)
print(plot3,split=c(1,2,2,2),more=T)
print(plot4,split=c(2,2,2,2),more=F)



ca me donne "le plus petit" graphe potable

Si je veux maintenant un graphe aux dimensions < dims,
la seule solution est-elle de modifier les options des graphiques (tailles de texte et de symbole) ? L'option pointsize ne semble pas marcher ?

Emmanuel
Emmanuel Tillard

UMR ERRC (Elevage des Ruminants en Regions Chaudes)

CIRAD - St PIERRE (La Réunion)

tel: 02 62 49 92 54


Retourner vers « Archives : Fonctions graphiques »

Qui est en ligne

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