rm(list=ls()) require(ggplot2) require(sp) set.seed(123456) df=data.frame(x=runif(100,-1,1) ,y=runif(100,-1,1)) x=seq(-1,1,length=21) Line1=data.frame(x=x,y=-0.5+0.8*x,g="L1") Line2=data.frame(x=rev(x),y=0.5+0.6*rev(x),g="L2") Linedf=rbind(Line1,Line2) df$in.pg = ifelse(as.logical(point.in.polygon(df$x, df$y, pol.x=Linedf$x, pol.y=Linedf$y)) ,"Yes","No") head(df) ggplot()+ geom_point(aes(x=x,y=y,colour=in.pg),data=df,inherit.aes = F)+ geom_path(aes(x=x,y=y,group=g,colour=g),size=1.2,data=Linedf,inherit.aes = F)