Я готовлю следующее:
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)
Теперь предположим, что я только хочу , чтобы построить область между x=-5000
до 5000
, а не во всем диапазоне.
Как я могу это сделать?
library(scales); ... + scale_x_continuous(limits = c(-5000, 5000), oob=squish)
(по умолчанию этоoob=censor
); см?squish
,?censor
: groups.google.com/forum/#!topic/ggplot2/AsJ6xpmR9tUcoord_cartesian
подхода?coord_cartesian(xlim =
вам, вероятно, также необходимо выполнить сбросylim
и сброс метки и разрывов сетки.Краткое примечание: если вы также используете,
coord_flip()
чтобы перевернуть оси x и y, вы не сможете установить пределы диапазона, используя,coord_cartesian()
потому что эти две функции являются эксклюзивными (см. Здесь ).К счастью, это легко исправить; установите свои пределы в пределах
coord_flip()
так:Это просто изменяет видимый диапазон (т.е. не удаляет точки данных).
источник