Legende en dehors de la zone graphique

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

Matthieu Bernard
Messages : 2
Enregistré le : 17 Sep 2008, 14:38

Legende en dehors de la zone graphique

Messagepar Matthieu Bernard » 18 Sep 2008, 13:11

Je viens de débuter en R et j'ai un petit script qui créé des figures au format pdf. Le problème est que je n'arrive pas a mettre la légende en dehors de la zone de graphique (dans une des marges).

Ci quelqu'un sait ça me débloquerai bien
vc

Yves Reecht
Messages : 32
Enregistré le : 04 Oct 2007, 08:23
Contact :

Messagepar Yves Reecht » 18 Sep 2008, 13:38

Bonjour et bienvenu,

Essaye de précéder ta commande de légende par

Code : Tout sélectionner

par(xpd=NA)


voir ?par pour la signification des différentes valeurs du paramètre.

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 18 Sep 2008, 13:40

sur le site de Vincent Zoonekynd on peut trouver pas mal d'infos de ce genre avec les illustrations qui vont bien.

C'est peut être pas exactement ce que vous cherchez mais c'est très proche.

http://zoonek2.free.fr/UNIX/48_R/04.html

Consultez aussi le très bon pdf sur les paramètres graphiques de J. Lobry et al. (un coup de google et on a ça en qqs fractions de secondes ;) )

Nicolas

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 18 Sep 2008, 13:45

Bonjour,

depuis la version 2.7.2 le paramètre xpd a aussi été ajouté à la fonction légende pour justement permettre de l'intégrer plus facilement dans les marges.

Maxime

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 18 Sep 2008, 16:57

Logez Maxime a écrit :depuis la version 2.7.2 le paramètre xpd a aussi été ajouté à la fonction légende pour justement permettre de l'intégrer plus facilement dans les marges.


Alors ça, c'est trop cool, essayez (sous R 2.7.2) :

Code : Tout sélectionner

  #
  # Un plot quelconque reproductible :
  #

set.seed(1)
n <- 8
mycols <- rainbow(n)
plot(rnorm(n), rnorm(n), bg= mycols, pch = 21, main = "main", xlab = "xlab", ylab = "ylab", las = 1, cex = 3)

  #
  # Et un petit coup de legend() en xpd = NA :
  #

legend("topright", inset = c(-0.06, -0.15), legend = paste("x", 1:n), xpd = NA, bg = grey(0.9), pch = 21, pt.bg = rainbow(n))


Amicalement,

Jean

Yves Reecht
Messages : 32
Enregistré le : 04 Oct 2007, 08:23
Contact :

Messagepar Yves Reecht » 18 Sep 2008, 17:17

jean lobry a écrit :
Logez Maxime a écrit :depuis la version 2.7.2 le paramètre xpd a aussi été ajouté à la fonction légende pour justement permettre de l'intégrer plus facilement dans les marges.


Alors ça, c'est trop cool...

Oui, plus besoin (si je comprends bien, pas eu le temps de tester) de penser à le remettre à FALSE ou TRUE après !

Quelqu'un sait-il si ce changement concerne également d'autres fonctions telles que abline, etc. ?

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 18 Sep 2008, 18:37

Yves Reecht a écrit :Quelqu'un sait-il si ce changement concerne également d'autres fonctions telles que abline, etc. ?


Je ne sais pas, mais au pire tu fais un :

Code : Tout sélectionner

par(xpd = NA)


avant l'appel à la fonction graphique de bas niveau qui t'intéresse et ça devrait marcher. Pour abline() ça marchait déjà en R 2.7.1 si j'en juge par les deux dernières diapos de mon cours de l'an dernier http://pbil.univ-lyon1.fr/R/pdf/lang04.pdf, et dans mon souvenir déjà bien avant (R 1.9.0 au moins je dirais au pif).

Amicalement,

Jean

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 18 Sep 2008, 19:43

re,

a priori ça ne concerne que legend :
CHANGES IN R VERSION 2.7.2


NEW FEATURES

o sprintf() returns elements of the result in UTF-8 when the
format or any character input has a corresponding element
declared as UTF-8. Similarly for paste(), elements of the
result are in UTF-8 when any input to that element is declared
as UTF-8.

o axis() has new arguments 'col.ticks' and 'lwd.ticks' to allow
the colour and line width of ticks to be set separately from
that of the line (e.g. to set one or the other to transparent
or zero width).

o legend() has a new argument 'box.col' to set the colour of the
enclosing box.

o legend() gains a 'xpd' argument to make it easier to place a
legend in the margins or outer margins.

o stripchart() now passes '...' to title() (as well as to
plot.default() and axis()). (Wish of PR#12202)

o help.search() has new argument 'searchEngine' to go
directly to the search form: this is needed by users of
Firefox 3 to workaround a bug in interpreting the search
results pages.


Maxime

Matthieu Bernard
Messages : 2
Enregistré le : 17 Sep 2008, 14:38

Messagepar Matthieu Bernard » 19 Sep 2008, 06:56

Merci a tous c'est exactement ce qu'il me fallait.
Et super rapide en plus.
R a l'air plein de possibilitée. Si en plus y a une bonne communauté derrière ça vaut vraiment le coup de s'y mettre.
vc

Yves Reecht
Messages : 32
Enregistré le : 04 Oct 2007, 08:23
Contact :

Messagepar Yves Reecht » 19 Sep 2008, 08:17

jean lobry a écrit :Je ne sais pas, mais au pire tu fais un :

Code : Tout sélectionner

par(xpd = NA)

Oui, c'est sûr (c'est d'ailleurs ce que je proposais plus haut).

Mon exemple de abline() était peut-être mal choisi !
C'est justement une des fonctions qui donne les pires résultats si on oublie de remettre xpd à FALSE.

Je pensais plutôt à des fonctions comme text() ou rect(), mais un rapide coup d'œil à l'aide m'a appris qu'elles acceptaient déjà ce paramètre dans la 2.7.1 ! Dire que j'en étais encore à stocker la valeur de xpd et à la restaurer ensuite...


Retourner vers « Questions en cours »

Qui est en ligne

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

cron