You did it right. When you call xlim([3 7]) only data values between x=3 and x=7 will be plotted. In your two plots, you are not plotting the same arrays. For example, you have values at x=4 for the left graph but not for the right graph, and the y values for x=5 on the left are nowhere close to the y values for x=5 on your right plot. Also your left graph has 3 curves while your right graph has 4 curves. But if you had plotted the same thing in both plots, it would have been correct.