2017-08-05 3 views
0

J'essaie de contrôler l'espacement et les étiquettes dans un graphe ggplot formé avec facet_grid. J'ai fait des recherches et j'utilise des arguments que je pensais pouvoir m'aider à atteindre au moins le premier objectif mais le résultat n'est pas ce que j'attendais.Espacement des contrôles et étiquettes dans facet_grid, ggplot

Pour un exemple reproductible, j'utilise l'ensemble de données mtcars (base R) et je fournis une image de la sortie du code où j'indique ce que je voudrais changer.

Vos conseils seront appréciés.

data(mtcars) 
setDT(mtcars) 
mtcars[, ":="(vs = as.factor(vs), am = as.factor(am), gear = as.factor(gear), carb = as.factor(carb))] 

ggplot (mtcars, 
     aes(x= disp , y = hp , colour = carb)) + 
    geom_point (size = 2) + facet_grid (gear ~ vs * am , margins = TRUE) + 
    xlab('disp') + ylab('hp') + 
    theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+ 
    theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines")) 

enter image description here

Répondre

0

L'espace entre les panneaux vous pouvez définir avec le paramètre panel.spacing dans theme. Le theme_economist le change. Par défaut, il y a des espaces entre les panneaux.

Vous pouvez également ajouter la fonction d'étiquetage label_both afin d'avoir les noms de variables sur chaque étiquette de panneau.

ggplot (mtcars, 
     aes(x= disp , y = hp , colour = carb)) + 
    geom_point (size = 2) + facet_grid (gear ~ vs * am , margins = TRUE, labeller = label_both) + 
    xlab('disp') + ylab('hp') + 
    theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+ 
    theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines"), panel.spacing=unit(2,"lines")) 

enter image description here