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 :

Titre de graphique dynamique


Sujet :

R

  1. #1
    Membre du Club
    Homme Profil pro
    Data analyst
    Inscrit en
    Mars 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 81
    Points : 65
    Points
    65
    Par défaut Titre de graphique dynamique
    Bonjour à tous,

    Je fais une petite fonction qui me permet de faire plusieurs graphiques, pour des variables issues d'une même table.
    Le but de la fonction c'est de faire un graphique pour chaque variable en fonction d'une variable d’intérêt (dans le prop.table, je ne prend que les pourcentages de la modalité 1 dans ma variable d’intérêt (qui comme modalité 0 et 1)). Cependant je n'arrive à mettre le titre en paramètre, c'est à dire que le nom de la variable s'affiche sur le graphique qui lui correspond.
    Voici la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pen.graph <- function(x){
      tab<- prop.table(table(x,matable$var_interet),1)
      res<-plot(round(tab[,2],2), main = " ", type ="l", col="red", ylab="% BAD 120J", xlab = colnames(x), font.axis=1, cex.axis=1, las=1, xaxt="n")
      axis(side=1, at = 1:nrow(tab), labels=row.names(tab))
      res
    }
    graph<-lapply(matable, pen.graph); par(mfcol=c(3, 4));graph
    Merci d'avance pour votre aide :-)

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur en Nutrition animale
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur en Nutrition animale
    Secteur : Alimentation

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Tu peux faire une boucle for qui attribut à i le numéro de la colonne d'intérêt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    col_debut<-2
    col_fin<-6
     
    For(1 in c(col_debut:col_fin)){
     
    #Tu fais ta fonction dans la boucle
     
    }

    Et dans cette situation l'argument suivant devrait fonctionner dans ta fonction :

    Ça doit fonctionner :-)

  3. #3
    Membre du Club
    Homme Profil pro
    Data analyst
    Inscrit en
    Mars 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Salut

    Merci pour la réponse, juste un petit soucis, il m'affiche le même graphique avec chacun des noms de la variables. ca duplique les graphiques.

    Je n'ai pas réussi à trouver comment limiter un graphique avec uniquement le nom de la variable qui lui correspond.

    Help please :-(

    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur en Nutrition animale
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur en Nutrition animale
    Secteur : Alimentation

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Il faut que R enregistre les différentes étapes de la boucle, tu peux par exemple utiliser :
    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
     
    pdf("C:/Users/Desktop/Stat/sorties_graphiques.pdf") #Chemin + nom du fichier que tu veux créer
    col_debut<-2
    col_fin<-6
     
    For(1 in c(col_debut:col_fin)){
     
    #Tu fais ta fonction dans la boucle en utilisant l'argument 
     
    main=names(matable)[i]
     
    #Avant la fin de la boucle tu lui demandes d'écrire le graphique :
     
    print(res)
     
    }
     
    dev.off()
    Est-ce que cette méthode te convient ?

  5. #5
    Membre du Club
    Homme Profil pro
    Data analyst
    Inscrit en
    Mars 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Merci pour la réponse.
    Le problème vient de moi, je pense, je suis novice en R, ma fonction avec apply, je ne sais pas si ça vient de là, mais je n'arrive pas à appliquer ta solution.
    Merci

  6. #6
    Membre du Club
    Homme Profil pro
    Data analyst
    Inscrit en
    Mars 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Pour ceux qui auront le même problème que moi, voici comment j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    par(oma=rep(2,4),mar=rep(2,4))
    par(mfrow = c(6, 9))
    pen.graph_v2<-sapply(names(sapply(matable[, -c(1, 2,3)], names)), 
                      function(x) plot(prop.table(table(matable[, x], matable$varcible))[,2],
                                       main = x, font.axis=1, cex.axis=1, las=1, xaxt="n", type ="l", col ="red",xlab = colnames(x)))
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. titre de graphique croisé dynamique
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/04/2008, 16h08
  2. changer dynamiquement un titre de graphique MSGraph
    Par Philippe PONS dans le forum IHM
    Réponses: 1
    Dernier message: 24/08/2007, 12h50
  3. [Map] comment generer une interface graphique dynamiquement?
    Par hby dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 20/04/2006, 16h01
  4. [Librairies] Graphique dynamique
    Par piloup dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/12/2005, 19h56
  5. Interface graphique dynamique
    Par gmonta dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/10/2005, 14h47

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