Como definir limites para os eixos nas parcelas ggplot2 R?
Eu ploto 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 traçar a região entre x=-5000
a 5000
, em vez de toda a gama.
Como posso fazer isso?
2 answers
Basicamente tens 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 indicado e o segundo apenas ajusta a área visível. Na maioria dos casos, você não veria a diferença, mas se você encaixar qualquer coisa aos dados, provavelmente mudaria os valores ajustados.
Também pode usar a função estenografia xlim
(ou ylim
), Que, tal como a primeira opção, remove os pontos de dados fora do intervalo indicado:
+ xlim(-5000, 5000)
Para mais verificação das informaçõescoord_cartesian
.
O RStudio cheatsheet para ggplot2
deixa isto bem claro visualmente. Aqui está uma pequena parte dessa folha de Cheat:
expedido sob CC por.
Nota rápida: se também estiver a usar coord_flip()
para inverter o eixo x e y, não será capaz de definir limites de intervalo usando coord_cartesian()
porque essas duas funções são exclusivas (veja aqui).
coord_flip()
Assim:
p + coord_flip(ylim = c(3,5), xlim = c(100, 400))
Isto altera apenas o intervalo visível (isto é, não remove os pontos de dados).