Binning_Scatter<-function(x,y,N_Bin) { Order_x<-order(x) x<-x[Order_x] y<-y[Order_x] n<-length(x) step<-as.integer(n/N_Bin) x_avg<-0 y_avg<-0 for (i in c(1:N_Bin-1)) { x_avg[i]<-mean(x[((i-1)*step+1):(i*step)]) y_avg[i]<-mean(y[((i-1)*step+1):(i*step)]) } x_avg[N_Bin]<-mean(x[((N_Bin-1)*step+1):n]) y_avg[N_Bin]<-mean(y[((N_Bin-1)*step+1):n]) return(x_avg,y_avg,step) } x<-rnorm(1000) y<-x+2 result<-Binning_Scatter(x,y,10) plot(result$x_avg,result$y_avg)