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
à 5000
, au lieu de toute la plage.
Comment puis je faire ça?
library(scales); ... + scale_x_continuous(limits = c(-5000, 5000), oob=squish)
(la valeur par défaut estoob=censor
); voir?squish
,?censor
: groups.google.com/forum/#!topic/ggplot2/AsJ6xpmR9tUcoord_cartesian
approche?coord_cartesian(xlim =
vous devrez probablementylim
également réinitialiser et réinitialiser les ruptures d'étiquette et de grille.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 en utilisantcoord_cartesian()
ces deux fonctions étant exclusives (voir ici ).Heureusement, c'est une solution facile; fixez vos limites
coord_flip()
comme ceci:Cela modifie simplement la plage visible (c'est-à-dire ne supprime pas les points de données).
la source