Ограничить оси 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)
Ответы
Ответ 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]()