load (sprintf ("%s/data/rsms_test.Rdata", Sys.getenv ("ABS_TOP_SRCDIR"))) Sys.setlocale ("LC_ALL", "fr_FR.UTF-8") #' Print the graphs for the features. #' @return the graph. #' @export features_graph <- function () { library ("magrittr") data <- (test %>% dplyr::filter (frac_labeled == 0.3, frac_labels == 1, algorithm %in% c ("formulas", "mifs", "rfs", "sfus"), dataset %in% c ("atp1d", "atp7d", "edm", "enb", "oes10", "oes97", "osales", "scpf", "sf1", "sf2", "wq"), !is.na (error)) %>% dplyr::mutate (algorithm = ifelse (algorithm == "formulas", "\\textbf{RSMS}", algorithm)) %>% dplyr::mutate (algorithm = ifelse (algorithm == "mifs", "MIFS", algorithm)) %>% dplyr::mutate (algorithm = ifelse (algorithm == "rfs", "RFS", algorithm)) %>% dplyr::mutate (algorithm = ifelse (algorithm == "sfus", "SFUS", algorithm)) %>% dplyr::select (dataset, algorithm, frac_features, error) %>% dplyr::group_by (dataset, algorithm, frac_features) %>% dplyr::summarize (n = dplyr::n (), mean = mean (error), sd = sd (error), min = min (error), max = max (error), median = median (error), q1 = quantile (error, 0.25), q3 = quantile (error, 0.75)) %>% dplyr::ungroup ()) arrange <- function (...) { gridExtra::grid.arrange (..., layout_matrix = rbind ( c (1, 2, 3), c (4, 5, 6), c (7, 8, 9), c (10, 11, 11) )) } do.call (arrange, lapply ((data %>% dplyr::select (dataset) %>% dplyr::distinct ())$dataset, function (dataset_name) { with_legend <- (data %>% dplyr::filter (dataset == dataset_name) %>% dplyr::mutate (ymin = mean - sd, ymax = max + sd) %>% dplyr::select (Algorithme = algorithm, `Variables` = frac_features, `aRMSE moyenne` = mean, ymin, ymax) %>% ggplot2::ggplot (ggplot2::aes (x = `Variables`, y = `aRMSE moyenne`, color = Algorithme, linetype = Algorithme)) + ggplot2::geom_line () + ggplot2::ggtitle (dataset_name) + ggplot2::scale_x_continuous (labels = scales::percent) + ggplot2::scale_color_manual (limits = c ("\\textbf{RSMS}", "MIFS", "SFUS", "RFS"), values = c ("black", "#e69f00", "#56b4e9", "#009e73")) + ggplot2::scale_linetype_manual (limits = c ("\\textbf{RSMS}", "MIFS", "SFUS", "RFS"), values = c ("solid", "dashed", "longdash", "dotdash"))) if (dataset_name == "wq") { with_legend } else { with_legend + ggplot2::theme (legend.position = "none") } })) } plot <- features_graph () filename <- Sys.getenv ("OUTPUT") ggplot2::ggsave (filename, plot, device = "svg", width = 6, height = 8)