Stretching and compressing graphs vertically is determined by the coefficient in front of the x (or more specifically, in front of the other direct modifications to x).
Let's look at a basic example.... f(x) = x2, a standard parabola.
Now, to vertically compress this curve, you put a 'fraction coefficient' in front of the x component of the graph. i.e. f(x) = (1/2)*x2. This squashes the graph down by a factor of 2. Or, another way to look at it, every y value in this curve is 1/2 of the value in the starting curve. Plot your own points to convince yourself of this. Note that the curve crosses (-2,4) and (2,4) in the original curve, whereas the new one crosses at (-2,2) and (2,2).
You can see that this has caused the parabola to stretch upwards. Note that it now crosses (1,2), not (1,1). Or once again, to look at it from a different angle, every y value is now twice the value as in the original graph. Compared to the original version, this is a vertical stretch graph.
The only other thing that you should keep in mind is that the coefficient to stretch or compress the graph vertically MUST be in front of any brackets that might be surrounding x, and the coefficient will act on any horizontal translation component and the exponent. Convince yourself of this by looking at graphs such as:
f(x) = (x-3)2....... and f(x)=2(x-3)2
f(x) = (x+1)3...... and f(x)=1/2(x+1)3
f(x) = x + 5...........and f(x) = 4x + 5
f(x) = (x-1)5 + 7...... and f(x) = 4(x-1)5 + 7
So far, all that I have talked about explains the concept of vertical compression and stretching. But, let's now consider how we would go about showing a horizontal compression or stretch. If we want to squash a graph together along the x-axis, what would we do? Well, for any value of x, we would want the graph to be at some fractional value of that x. So mathematically, this means that we have to modify the x value. To perform a horizontal compression or stretch on a graph, instead of solving your equation for f(x), you solve it for f(c*x) for stretching or f(x/c) for compressing, where c is the stretch factor. The simplest way to consider this is that for every x you want to put into your equation, you must modify x before actually doing the substitution. Let me show you.
Consider again the parabola f(x) = 2x2. If we want to start plotting this graph, we could start by building a table of values and solving for f(1), f(2), f(3), etc. Doing the quick math, you can see that f(1) = 2. Now let's say we want to horizontally compress this graph by a factor of 10. In this case, we do the modification on x before subbing in, so we apply the f(x/c) for compressing and see that f(1) becomes f(1/10). You then substitute 1/10 in for x, and solve. You then come up with the ordered pair of (1, 1/50). This is a ten times compression along the x-axis. If you draw some of these out, you will easily see that squishing or stretching along x is different from squishing or stretching along y.
Continuing with this same example, say we want to graph a horizontal stretch of a factor of 4. We then solve f(c*x), giving us f(4*x). For x = 1, f(4*1) becomes f(4), which works out to y = 32. Again, it is easy to see how much we have stretched the graph by this simple modification.
As you can see, stretching graphs (or compressing them), both vertically and horizontally, really isn't that difficult. There are obviously a few things that you need to remember, especially the distinction between horizontal and vertical changes. But these modifications are just an extension of what you already know, building on your knowledge of horizontal or vertical shifts. Keep practicing, and you'll get it in no time. :) (Remember to please hit Facebook Like button back at the beginning, or the Google +1 button if you liked my post!)