Nice addition, Gilberto.
You can actually make the x-axis zoom work in real time, like Gilberto's y-axis, by taking out the first list object, so it looks like this:
This way, you don't need to bang limit markers--they will update in real time. Things get jumpy when you select larger areas, though, because you are sending very large numbers to the [until] object every time you move a marker. Perhaps you could make it so that array2 only receives the new data points to add or subtract when the selection is changed, rather than receiving a total set each time? This would make it run smoother, although I don't know whether it's possible.