R - show movement of points Suppose I have data of the following form
t1 = data.frame(a=c(2,3,3,1,5),b=c(6,4,5,2,1))
t2 = data.frame(a=c(3,4,4,1,8),b=c(5,5,5,3,3))

If you consider plot(t1$a,t1$b) and plot(t2$a,t2$b), you can imagine that the second plot is produced by taking every point on the first plot and moving it to its new location in the second plot.
I'd like some nice way of visualizing this. One way I thought of was to represent each t1 (a,b) as a vector reaching to its corresponding t2 (a,b) point, and then plotting a bunch of vectors, sort of like what I used to do in differential equations (I'm forgetting the technical name for this type of plot). Basically, it would be a plot of a bunch of little arrows that originate from each t1 (a,b) and point to each t2 (a,b), respectively.
Any ideas of how to do this in R, or any other ideas for visualizing and looking at how each dot moves.
NOTE: in the real version of what I hope to accomplish, I have lots of data, maybe 200 points, and I'm trying to show that in general, points are moving towards smaller a values and smaller b values from t1 to t2. But I really want to show this some other way besides something like a histogram of the difference between t2 and t1 average of a and b.
 A: In terms of data visualization more generally, you probably want to use something like arrows going from the first set to the second set (and this is what I assume you intend by 'vectors' in any case). 
You should also distinguish the two sets of data in some way. I used both colours and made the 'source' symbols open circles and the destination symbols smaller, closed circles (so coincident points of two different colors are readily seen).
That is, I suggest a plot something like this:

Drawing arrows is pretty straightforward in R (?arrows)
t1 <- data.frame(a=c(2,3,3,1,5),b=c(6,4,5,2,1))
t2 <- data.frame(a=c(3,4,4,1,8),b=c(5,5,5,3,3))

xlm <- range(c(t1$a,t2$a))
ylm <- range(c(t1$b,t2$b))

plot(b~a,t1,col=4,cex=1.1,xlim=xlm,ylim=ylm)
points(b~a,t2,col=2,pch=16,cex=0.9)
arrows(t1$a,t1$b,t2$a,t2$b,length=0.12)

If, as David Marx suggests, you want a jittered version, here's a way to do that:
xlm <- range(c(t1$a,t2$a))
ylm <- range(c(t1$b,t2$b))

jf <- function(x) jitter(x,amount=0.13)
t1j <- as.data.frame(t(apply(t1,1,jf)))
t2j <- as.data.frame(t(apply(t2,1,jf)))

plot(b~a,t1j,col=4,cex=1.1,xlim=xlm,ylim=ylm)
points(b~a,t2j,col=2,pch=16,cex=0.9)
arrows(t1j$a,t1j$b,t2j$a,t2j$b,length=0.12)

A: If you want to move outside R, consider d3.js: You can animate scatterplots easily, using this library and any modern browser. There is an interactive example in the online version of Scott Murry's " Interactive Data Visualization for the Web
An Introduction to Designing with D3 " here.
