Traço o seguinte:
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)
Agora diga que só quero plotar a região entre x=-5000
para 5000
, em vez de todo o intervalo.
Como eu posso fazer isso?
library(scales); ... + scale_x_continuous(limits = c(-5000, 5000), oob=squish)
(o padrão éoob=censor
); ver?squish
,?censor
: groups.google.com/forum/#!topic/ggplot2/AsJ6xpmR9tUcoord_cartesian
abordagem?coord_cartesian(xlim =
é provável que você também precise redefinirylim
e redefinir as quebras de etiqueta e grade.Nota rápida: se você também estiver usando
coord_flip()
para girar os eixos xe y, não poderá definir limites de alcance usandocoord_cartesian()
porque essas duas funções são exclusivas (veja aqui ).Felizmente, essa é uma solução fácil; defina seus limites da seguinte
coord_flip()
maneira:Isso apenas altera o intervalo visível (ou seja, não remove os pontos de dados).
fonte