限制ggplot2轴而不移除数据(外部限制):缩放

如果您在ggplot中指定轴极限,则移除偏离点。 这对点很好,但是您可能需要绘制与指定范围相交的线条,但ggplot的rangexlim/ylim方法将删除这些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) 

哈德利在第99页解释了这一点。 他的ggplot2书(第一版) 133,或者如果你有第二版 ,第160-161页

问题在于,如果您在limits内说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)) 

在这里输入图像说明