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 :

Disposition des plots dans un fichier pdf


Sujet :

R

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut Disposition des plots dans un fichier pdf
    Bonjour,

    J'ai une liste de plot que je voudrais mettre un fichier pdf. Pour gérer mes plots j'utilise la fonction grid.arrange() puis j'utilise la fonction ggsave(..., device = "pdf")

    Dans le pdf je voudrais qu'il les mette en ne dépassant pas le nombre de colonne de 3, et qu'il crée une nouvelle page quand il le faut.

    Avec le code que j'utilisais plus je mettais de plots et plus il les écrasait.

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    library(ggplot2)
    library(doParallel)
    library(parallel)
     
    df <- data.frame("a" = 1:50, "b" = 1:50)
     
    cl <- makeCluster(5)
    registerDoParallel(cl)
    lp <- foreach::foreach(i=1:20, .packages = c("ggplot2")) %dopar%
     
    {
     
      scaleMin = min(c(min(df$a), min(df$b)))
      scaleMax = max(c(max(df$a), max(df$b)))
     
      p <- qplot(x = df$a, y = df$b) +
        geom_abline(intercept = 0, slope = 1, colour = "blue") + theme_bw()+
        labs(x = "", y="", title = "name ")+
        xlim(c(scaleMin, scaleMax)) + ylim(c(scaleMin, scaleMax))+
        theme(
          panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
          panel.background = element_rect(fill = "transparent")
        )
     
      return(p)
     
    }
     
    stopCluster(cl)
     
    gp <- gridExtra::grid.arrange(grobs = lp,ncol = 3,
                                  bottom="bottom",
                                  left="left")
     
    ggsave(gp, filename = "plots/allPlots.pdf", 
           dpi = 400, device = "pdf",
           width = 400,height = 240,
           units = c("mm"),limitsize = FALSE)

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    J'ai trouvé la fonction marrangeGrob() du package gridExtra mais j'ai essayé de mettre nrow=5 et ncol=3, j'obtiens ce fichier mis en pièce jointe.
    Images attachées Images attachées

  3. #3
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Disposition des plots dans un fichier pdf
    Bonjour,

    C'est la disposition par défaut de la fonction marrangeGrob() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    library(gridExtra)
    library(ggplot2)
    pl <- lapply(1:9, function(.x) qplot(1:10, rnorm(10), main=paste("plot", .x)))
    ml <- marrangeGrob(pl, nrow=3, ncol=2)
    ## non-interactive use, multipage pdf
    ggsave("d:/temp/multipage1.pdf", ml)
    ## interactive use; open new devices
    ml
    Vous pouvez utiliser l'option layout_matrix pour modifier cette disposition (voir la vignette du package gridExtra) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    library(gridExtra)
    library(ggplot2)
    pl <- lapply(1:9, function(.x) qplot(1:10, rnorm(10), main=paste("plot", .x)))
    lay <- rbind(c(1,2),
                 c(3,4),
                 c(5,6))
    ml <- marrangeGrob(pl, nrow=3, ncol=2, layout_matrix=lay)
    ## non-interactive use, multipage pdf
    ggsave("d:/temp/multipage2.pdf", ml)
    ## interactive use; open new devices
    ml
    Cordialement,

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Bonjour,

    Merci de votre aide.

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

Discussions similaires

  1. Insérer des signets dans un fichier pdf issu d'une fusion de fichiers pdf
    Par aude_alti dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/04/2013, 14h38
  2. Comptage des mots dans un fichier PDF
    Par wafaa_H dans le forum Développement Web avec .NET
    Réponses: 4
    Dernier message: 05/06/2011, 22h50
  3. [MySQL] récupération des données dans un fichier pdf
    Par Hamnatouch dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/05/2011, 11h57
  4. [FPDI] Incorporéer des données dans un fichier PDF existant
    Par jalalnet dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/11/2010, 19h57
  5. [VxiR2] Séparation des rapports dans pour fichier PDF
    Par zaza78 dans le forum Webi
    Réponses: 2
    Dernier message: 31/08/2009, 10h49

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