position de légende

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

Eric Pagot
Messages : 195
Enregistré le : 15 Fév 2007, 17:10

position de légende

Messagepar Eric Pagot » 12 Jan 2009, 17:18

Bonjour,

Je cherche un moyen pour déterminer la place d'une légende sans la superposer au graphique. je prend un exemple :
x<-c(39,39.8,39.2,39.2,39,38.6,38.6,39.1,39.3,38.9,39.1,40,38.8,39.4,39.2,39.3,39.3,38.9,39.9,38.2,39.2,38.8,39.9,39.6,39.4,40.8,39.4,38.9,39.2,38.8,39.6,38.6,38.9,38.7,38.8,39.7,38.7,40.6,39.1,39.7,38.6,40.1,39,39.4,39.4,39.3,38.8,39.1,38.9,38.7,39.3,38.9,39.9,39.2,41.8,39.6,39.2,39.1,39.5,40.2,39.2,38.4,39.4,39.2,40.1,39.6,38.4,41.3,39.3,39.7,39.7,40.4,38.9,38.6,39.5,39.6,41.2,39.4,38.2,39.7,39.9,39.1,38.2,39.5,39.8,42.1,39.4,39.7,39.9,40.5,39.3,41.2,38.1)
y<-c(39.4,39,38.7,38.3,40.6,39.1,39.1,39.5,41.7,39.5,39,40.1,39.2,39.2,39.6,39.2,39.7,39.4,39.2,39.4,39.4,39.2,39.1,38.9,38.4,39.6,39.2,39.3,39.2,39.2,39.2,38.5,39.9,38.7,38.6,38.8,38.3,40.2,38.5,39.5,38.4,40.1,39.1,38.4,39.5,39.3,38.8,40.5,40.1,38.9,38.9,39.1,39.9,39.7,39,40,39.7,39.7,39.3,40.5,39.7,39.3,38.9,39.2,40.5,40.2,39.2,41,38.9,39.4,38.8,39.8,40.2,38.5,39.6,39.3,38.7,39.2,38.1,40.1,38.6,39.2,39.4,39.9,39.8,39.5,39.1,40.5,39.7,39.6,38.5,39.9,38.1)
Si l'on fait le dessin, la légende peut être mise en haut ou en bas à droite mais pas en bas à gauche (donc tout sauf "bottomleft").Je pense qu'il doit y avoir moyen de calculer l'endroit où la légende écrite ne se superpose pas au dessin (la largeur de la légende doit aussi jouer). Si quelqu'un a des pistes...
Vétérinaire CTPA

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

Messagepar Logez Maxime » 13 Jan 2009, 09:12

Bonjour,

Une piste comme une autre, tu calcules la distance entre tes points et les coins de la figure et les coins qui présentent la plus grande distance alors sont des candidats pour disposer ta légende :

Code : Tout sélectionner

plot(x,y)
coins <- expand.grid(par()$usr[1:2],par()$usr[3:4])
coins <- as.matrix(coins)
colnames(coins) <- c("x","y")

coins
         x      y
[1,] 37.94 37.956 # en bas à gauche
[2,] 42.26 37.956 #en bas à droite
[3,] 37.94 41.844 #en haut à gauche
[4,] 42.26 41.844 # en haut à droite

# la plus petite distance entre un des points et les coins
apply(coins,1,function(w) min(rowSums(sweep(X,2,w,"-")^2)))
[1] 0.046336 1.301536 1.870336 1.633936


Il est clair ici que le coin en bas a gauche n'est pas le bon candidat, il semblerai que ce soit en haut à gauche que tu es le plus de place pour la légende. Après il te faut avoir la taille de la légende pour savoir quelles sont les coins qui peuvent la contenir.

Maxime

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 13 Jan 2009, 09:46

En marge du graphe, il n'y a jamais de problème ;-)

Eric Pagot
Messages : 195
Enregistré le : 15 Fév 2007, 17:10

Messagepar Eric Pagot » 14 Jan 2009, 11:39

Merci pour le calcul de distance, je vais pouvoir utiliser la formule. En fait, j'avais besoin de cela pour mettre dans un dessin avec de multiples fenêtres.
Vétérinaire CTPA


Retourner vers « Questions en cours »

Qui est en ligne

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