web-dev-qa-db-fra.com

Comment fonctionne ggplot scale_continuous expand argument?

J'essaie de comprendre comment fonctionne l'argument scale_continuous()expand. Selon documentation scale_continuous :

Un vecteur numérique de longueur deux donnant des constantes d'expansion multiplicatives et additives. Ces constantes garantissent que les données sont placées à une certaine distance des axes. Les valeurs par défaut sont c (0,05, 0) pour les variables continues et c (0, 0,6) pour les variables discrètes.

Puisqu'il s'agit de "constantes d'expansion", ce ne sont pas des unités réelles. Existe-t-il un moyen de les convertir en une mesure réelle pour prédire la sortie réelle? Pour tout sauf 0, j'essaie juste des nombres aléatoires jusqu'à ce que ça marche. Il doit y avoir une manière plus appropriée d'aborder cela.

13
burger

Le document est assez clair. Si vous définissez limits manuellement, ce serait plus clair. Je vais donner quelques exemples pour montrer comment cela fonctionne:

le premier argument donne une expansion égale à sa multiplication par plage limite;

ggplot(mpg, aes(displ, hwy)) +
    geom_point() +
    scale_x_continuous(limits = c(1, 7), expand = c(0.5, 0))
# right most position will be 7 + (7-1) * 0.5 = 10

la seconde donne l'expansion absolue ajoutée aux deux extrémités de l'axe:

ggplot(mpg, aes(displ, hwy)) +
    geom_point() +
    scale_x_continuous(limits = c(1, 7), expand = c(0.5, 2))
# right most position will be 7 + (7-1) * 0.5  + 2 = 12

Enfin, la même expansion s'applique aux deux extrémités de l'axe.


2019-01-23: J'ai appris de @ C.Liu répondre que le nouveau expand_scale la fonction pourrait être utilisée pour obtenir différent expansion des limites inférieures et supérieures. Les paramètres multi et add sont similaires aux deux valeurs requises pour expand = mais permet à un vecteur de longueur deux de fixer la limite inférieure et la limite supérieure. Voir la réponse de C.liu pour plus de détails.

23
mt1022

expand_scale pourrait être le choix pour le réglage fin d'une seule extrémité de l'axe.

ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(limits = c(1, 7), 
                   expand = expand_scale(mult = c(0, 0.5), 
                                         add = c(2, 0))
# left most position will be 1 - (7-1) * 0.0  -2 = -1, 
# right most position will be 7 + (7-1) * 0.5 = 10

Il s'agit d'une fonction pratique pour générer des vecteurs d'expansion d'échelle pour l'argument expand d'échelle _ _ continu et échelle _ _ discret. Les vecteurs d'extension sont utilisés pour ajouter de l'espace entre les données et les axes.

expand_scale (mult = 0, add = 0)

Arguments mult

vecteur des facteurs d'expansion de la plage multiplicative. Si longueur 1, les limites inférieure et supérieure de l'échelle sont étendues vers l'extérieur par mult. Si longueur 2, la limite inférieure est développée par mult 1 et la limite supérieure par mult [2]. ajouter

vecteur de constantes d'expansion additives. Si la longueur est 1, les limites inférieure et supérieure de l'échelle sont étendues vers l'extérieur en ajoutant des unités. Si longueur 2, la limite inférieure est développée par add 1 et la limite supérieure par add [2].

Générer un vecteur d'expansion pour les échelles

16
C.Liu