IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Graphiques & légende


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Par défaut Graphiques & légende
    Bonjour,

    Je souhaiterais ajouter une legende sur mes graphiques mais pas sur le graphe car il n'y a pas la place, est-il possible de la mettre en titre ou en bas de page ou ailleurs ?

    D'autre part, je voudrais superposer deux courbes l'une sur l'autre, comment faire pour qu'on puisse voir les deux couleurs des courbes bien distinctes au lieu d'une seule ?

    Merci
    Did

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 22
    Par défaut
    Pour la deuxième question, on peut jouer avec les types de lignes et les couleurs(
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lines(type='l/s/b...',lty=x,col=y,pch=z)
    ).
    Pour la première question, j'avais eu le même problème il y a un petit moment, j'avais pas trouvé de solution simple, j'avais créer moi même ma légende en créant un cadre et en dessinant et écrivant dedans il me semble, tout ce que je me rappelle c'était pas facile.
    Il existe peut être une autre manière plus simple.

  3. #3
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,
    Citation Envoyé par did10 Voir le message
    Je souhaiterais ajouter une legende sur mes graphiques mais pas sur le graphe car il n'y a pas la place, est-il possible de la mettre en titre ou en bas de page ou ailleurs ?
    Il faut bien sûr un peu augmenter les marges, e.g.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    par(mar=c(5, 4, 6, 1) + 0.1)   # défaut : c(5, 4, 4, 1) + 0.1
     
    # la fonction qui plot'...
    puis, pour la légende, autoriser l'écriture dans les marges (paramètre xpd)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend(<x>, <y>, <legend>,..., xpd=NA)
    en choisissant <x> et <y> pour être dans la marge.

  4. #4
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Par défaut
    Merci, mais je ne vois pas quelles valeurs mettre pour <x> et <y> ?
    D'autre part, en agrandissant la marge je ne vois pas de difference

  5. #5
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par did10 Voir le message
    Merci, mais je ne vois pas quelles valeurs mettre pour <x> et <y> ?
    Ça dépend des plages de valeurs de ton graphique. Pour une légende au dessus, il faudra typiquement un <y> > max(y)

    Citation Envoyé par did10 Voir le message
    D'autre part, en agrandissant la marge je ne vois pas de difference
    T'as pas du trop essayer alors

    Bon, un p'tit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    par(mfrow=c(1, 2))  # 2graphiques dans la même fenêtre
    plot(1:2, 1:2, pch=16)
    legend(1, 2.1, legend=letters[1:4], pch=16, col=gray(c(0.2, 0.4, 0.6, 0.8)))   # une légende qui sort légèrement de la zone de graphique mais qui n'a pas le droit d'écrire à l'extérieur !
     
    par(mar=c(5, 4, 6, 1) + 0.1)   # On augmente la marge supérieure
    plot(1:2, 1:2, pch=16)
    legend(1, 2.3, legend=letters[1:4], pch=16, col=gray(c(0.2, 0.4, 0.6, 0.8)), xpd=NA)   # Et la légende dans la marge supérieure

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Par défaut
    Ok merci j'ai compris le principe mais je dois faire ça sur 113 graphiques, en sachant qu'ils n' ont pas tous la même échelle, donc la galère ...

  7. #7
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par did10 Voir le message
    ...la galère ...
    Mais non, mais non... juste un peu d'automatisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    > d <- legend("top", legend=letters[1:4], pch=16, col=gray(c(0.2, 0.4, 0.6, 0.8)), xpd=NA, plot=FALSE)   # On récupère les dimensions de la légende, sans l'imprimer
    > d
    $rect
    $rect$w
    [1] 0.2057927
    
    $rect$h
    [1] 0.2268908
    
    $rect$left
    [1] 1.397104
    
    $rect$top
    [1] 2.04
    
    
    $text
    $text$x
    [1] 1.528811 1.528811 1.528811 1.528811
    
    $text$y
    [1] 1.994622 1.949244 1.903866 1.858487
    
    
    > legend("top", legend=letters[1:4], pch=16, col=gray(c(0.2, 0.4, 0.6, 0.8)), xpd=NA, inset = -d$rect$h)  # On l'imprime décalée de inset de la marge du haut

Discussions similaires

  1. [Débutant] Docking graphique et légende
    Par Vincent32 dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/04/2012, 09h56
  2. Réponses: 5
    Dernier message: 17/02/2011, 14h10
  3. graphique et légende
    Par Sarkal115 dans le forum Conception
    Réponses: 0
    Dernier message: 11/05/2010, 20h39
  4. Graphique : Affichage légende sur Axe
    Par npirard dans le forum Flex
    Réponses: 4
    Dernier message: 27/01/2010, 16h02
  5. [VBA-E] Graphique et Légende
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/09/2007, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo