If your scatter plot has so many points that it becomes a complete mess, try a smoothed scatter plot. Here is an example:
library(mlbench) ## this package has a smiley function
n <- 1e5 ## number of points
p <- mlbench.smiley(n,sd1 = 0.4, sd2 = 0.4) ## make a smiley :-)
x <- p$x[,1]; y <- p$x[,2]
par(mfrow = c(1,2)) ## plot side by side
plot(x,y) ## left plot, regular scatter plot
smoothScatter(x,y) ## right plot, smoothed scatter plot
The hexbin
package (suggested by @Dirk Eddelbuettel) is used for the same purpose, but smoothScatter()
has the advantage that it belongs to the graphics
package, and is thus part of the standard R installation.