matrix.R 47.9 KB
Newer Older
Heraut Louis's avatar
Heraut Louis committed
                    subsection = title
                    n_page = df_page$n[nrow(df_page)] + 1
                    df_page = bind_rows(
                        df_page,
                        tibble(section=section,
                               subsection=subsection,
                               n=n_page))
                }
                
Heraut Louis's avatar
Heraut Louis committed
                # If there is a foot note
                if (foot_note) {
Heraut Louis's avatar
Heraut Louis committed
                    footName = paste('tableau récapitulatif de ',
                                     type, sep='')
                    
                    if (is.null(df_page)) {
                        n_page = n_loop
                    }
                    
                    foot = foot_panel(footName,
                                      n_page,
Heraut Louis's avatar
Heraut Louis committed
                                      resources_path,
                                      logo_dir,
Heraut Louis's avatar
Heraut Louis committed
                                      AEAGlogo_file, INRAElogo_file,
                                      FRlogo_file, foot_height)
                    
Heraut Louis's avatar
Heraut Louis committed
                    # Stores the map, the title and the colorbar
                    # in a list
Heraut Louis's avatar
Heraut Louis committed
                    P = list(mat, foot)
                    LM = matrix(c(1,
                                  2),
                                nrow=2, byrow=TRUE)
                } else {
                    foot_height = 0
Heraut Louis's avatar
Heraut Louis committed
                    # Stores the map, the title and the colorbar
                    # in a list
Heraut Louis's avatar
Heraut Louis committed
                    P = list(mat)
                    LM = matrix(c(1),
                                nrow=1, byrow=TRUE)
                }
                id_foot = 2
                
                LMcol = ncol(LM)
                LMrow = nrow(LM)
                
                LM = rbind(rep(99, times=LMcol),
                           LM, rep(99, times=LMcol))
                LMrow = nrow(LM)
                LM = cbind(rep(99, times=LMrow),
                           LM, rep(99, times=LMrow))
                LMcol = ncol(LM)
                
Heraut Louis's avatar
Heraut Louis committed
                margin_size = 0.5
Heraut Louis's avatar
Heraut Louis committed

Heraut Louis's avatar
Heraut Louis committed
                row_height = (height - 2*margin_size - foot_height) / (LMrow - 3)
Heraut Louis's avatar
Heraut Louis committed

                Hcut = LM[, 2]
                heightLM = rep(row_height, times=LMrow)
                heightLM[Hcut == id_foot] = foot_height
Heraut Louis's avatar
Heraut Louis committed
                heightLM[Hcut == 99] = margin_size
Heraut Louis's avatar
Heraut Louis committed

Heraut Louis's avatar
Heraut Louis committed
                col_width = (width - 2*margin_size) / (LMcol - 2)
Heraut Louis's avatar
Heraut Louis committed
                
                Wcut = LM[(nrow(LM)-1),]
                widthLM = rep(col_width, times=LMcol)
Heraut Louis's avatar
Heraut Louis committed
                widthLM[Wcut == 99] = margin_size
Heraut Louis's avatar
Heraut Louis committed

                # Arranges the graphical object
                plot = grid.arrange(grobs=P, layout_matrix=LM,
                                    heights=heightLM, widths=widthLM)

Heraut Louis's avatar
Heraut Louis committed
                # Saving
Heraut Louis's avatar
Heraut Louis committed
                ggsave(plot=plot, 
Heraut Louis's avatar
Heraut Louis committed
                       path=outdirTmp,
                       filename=paste(outnameTmp,
                                      '_', type,
Heraut Louis's avatar
Heraut Louis committed
                                      iMat, sep=''),
                       device='pdf',
                       width=width, height=height,
                       units='cm', dpi=dpi)            
Heraut Louis's avatar
Heraut Louis committed
            }
Heraut Louis's avatar
Heraut Louis committed
        }           
    }
Heraut Louis's avatar
Heraut Louis committed
    return (df_page)
Heraut Louis's avatar
Heraut Louis committed
}