2014-09-05 211 views
55

如果您在ggplot中指定了坐标轴限制,则会移除离群点。这对点很好,但是您可能需要绘制与指定范围相交的线,但ggplot的rangexlim/ylim方法会移除这些线。是否有另一种方法来指定绘图轴范围而不移除离群数据?在不移除数据的情况下限制ggplot2坐标轴(范围外):zoom

例如

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) 

回答

90

哈德利在第99页解释了这个;他ggplot2 book (1st edition),或PP 133 160 - 161,如果你有second edition

的问题是,像你说的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

+1

如果什么coord_cartesian是不是一种选择,因为我用'geom_boxplot'? – Everettss 2017-12-18 08:03:41

相关问题