Como definir limites para eixos em plotagens ggplot2 R?

Eu 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, digamos que eu queira apenas plotar a região entre x=-5000 a 5000 , em vez de todo o intervalo.

Como eu posso fazer isso?

Basicamente você tem duas opções

 scale_x_continuous(limits = c(-5000, 5000)) 

ou

 coord_cartesian(xlim = c(-5000, 5000)) 

Onde o primeiro remove todos os pontos de dados fora do intervalo determinado e o segundo apenas ajusta a área visível. Na maioria dos casos você não veria a diferença, mas se você ajustasse qualquer coisa aos dados provavelmente mudaria os valores ajustados.

Você também pode usar a function abreviada xlim (ou ylim ), que, como a primeira opção, remove os pontos de dados fora do intervalo especificado:

 + xlim(-5000, 5000) 

Para mais informações, consulte a descrição de coord_cartesian .

A ggplot2 RStudio para ggplot2 deixa isso bem claro visualmente. Aqui está uma pequena seção da planilha:

insira a descrição da imagem aqui

Distribuído sob CC BY .

Nota rápida: se você também estiver usando coord_flip() para inverter o eixo xe y, você não poderá definir limites de alcance usando coord_cartesian() porque essas duas funções são exclusivas (veja aqui ).

Felizmente, essa é uma solução fácil; defina seus limites dentro de coord_flip() assim:

 p + coord_flip(ylim = c(3,5), xlim = c(100, 400)) 

Isso apenas altera o intervalo visível (isto é, não remove pontos de dados).