You need to fix the range of the y-axis on each graph using the ylim parameter. By default plot() determines the range of the y-axis based on the range of the data, and since y1 and y2 have different ranges in this case, your two plot() calls are using different y-axis ranges (but the same x-axis range since both plots are plotting against the same x variable).
In God we trust. All others must bring data.
~W. Edwards Deming
For both plots, set type="o", pch=20, col="red" or col="blue", and then you can add the legend using legend(). If you also want the gridlines you can add those using abline(), see the v and h parameters therein.
ylim takes a vector of length two, where the two elements specify the highest and lowest tick points on the axis (in either order). You don't have to specify all of the intervening tick points. Although for future reference, when you are interested in specifying each tick point, you can use the yaxp and xaxp parameters (see ?par for more info).
In God we trust. All others must bring data.
~W. Edwards Deming
If you're willing to put the time into ggplot it can provide a great deal of functionality and flexibility for some visuals. It does require learning the system (The Grammar of Graphics) but once you do you can make high quality graphics rather quickly. Here's your example: