Je trace ce qui suit:
library(ggplot2)
carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)
ggplot(vegLengths, aes(length, fill = veg)) +
geom_density(alpha = 0.2)
Maintenant, disons que je veux seulement tracer la région entre x=-5000
et 5000
, au lieu de la plage entière.
Comment puis je faire ça?
Fondamentalement, vous avez deux options
_scale_x_continuous(limits = c(-5000, 5000))
_
ou
_coord_cartesian(xlim = c(-5000, 5000))
_
Où le premier supprime tous les points de données en dehors de la plage donnée et le second ajuste uniquement la zone visible. Dans la plupart des cas, vous ne verrez pas la différence, mais si vous ajustez quelque chose dans les données, cela modifiera probablement les valeurs ajustées.
Vous pouvez également utiliser la fonction abrégée xlim
(ou ylim
), qui, comme la première option, supprime les points de données en dehors de la plage donnée:
_+ xlim(-5000, 5000)
_
Pour plus d'informations, consultez la description de coord_cartesian
.
Le aide-mémoire RStudio pour _ggplot2
_ le rend très clair visuellement. Voici une petite section de cette aide-mémoire:
Distribué sous CC BY.
Remarque rapide: si vous utilisez également coord_flip()
pour inverser les axes x et y, vous ne pourrez pas définir de limites de plage avec coord_cartesian()
car ces deux fonctions sont exclusives (voir ici ).
Heureusement, c'est une solution facile. Définissez vos limites dans coord_flip()
comme ceci:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
Cela ne fait que modifier la plage visible (c’est-à-dire ne supprime pas les points de données).