Подтвердить что ты не робот

Ограничить оси ggplot2 без удаления данных (внешние ограничения): увеличить

Если вы укажете пределы оси в ggplot, удаляемые точки удаляются. Это хорошо для точек, но вам может потребоваться построить линии, которые пересекаются с указанным диапазоном, но методы ggplot range или xlim/ylim удаляют эти. Есть ли другой способ указать диапазон оси графика без удаления внешних данных?

например.

require(ggplot2)
d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c'))
ggplot(d, aes(x, y, group=grp)) + geom_line()
ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7))
ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7)
4b9b3361

Ответ 1

Хэдли объясняет это на стр. 99; 133 его ggplot2 book (1-е издание) или стр. 160 - 161, если у вас второе издание

Проблема заключается в том, что, как вы говорите limits внутри шкалы или параметра ylim, данные выводятся, поскольку они ограничивают данные. Для истинного масштабирования (сохранить все данные) вам необходимо установить пределы внутри декартовой системы координат. Подробнее см. http://docs.ggplot2.org/current/coord_cartesian.html

ggplot(d, aes(x, y, group=grp)) + geom_line() + 
    coord_cartesian(ylim=c(0, 7))

enter image description here