Function transformations let you take a base function and shift, reflect, stretch, or compress its graph without changing its core shape. Once you understand these rules, you can quickly sketch complex graphs by starting from a simple parent function and applying changes step by step.
Function Transformations
Vertical and Horizontal Shifts
Shifts slide the entire graph in one direction without altering its shape.
Vertical shifts move the graph up or down along the y-axis:
- shifts the graph up by units
- shifts the graph down by units
Horizontal shifts move the graph left or right along the x-axis. These work opposite to what you might expect:
- shifts the graph right by units
- shifts the graph left by units
The counterintuitive direction of horizontal shifts trips up a lot of students. Think of it this way: in , the function reaches the same y-value that had, but 3 units later (to the right), because you need just to get .
Vertical shifts change the range but not the domain. Horizontal shifts change the domain but not the range.

Reflections Across Axes
Reflections flip the graph over an axis, creating a mirror image.
- reflects across the x-axis (flips the graph upside down by negating all y-values)
- reflects across the y-axis (flips the graph left-to-right by negating all x-inputs)
A quick way to remember: the negative sign goes where the change happens. Negative outside the function affects y (x-axis reflection). Negative inside the function affects x (y-axis reflection).

Even and Odd Functions
Symmetry in functions connects directly to reflections.
Even functions are symmetric about the y-axis, meaning reflecting across the y-axis leaves the graph unchanged. The test: for all in the domain. Common examples include and .
Odd functions are symmetric about the origin, meaning a 180° rotation around the origin leaves the graph unchanged. The test: for all in the domain. Common examples include and .
Most functions are neither even nor odd. For instance, fails both tests. To classify a function, plug in and simplify. If you get back the original, it's even. If you get the negative of the original, it's odd. If neither, it's neither.
Compressions and Stretches
These transformations change how "tall" or "wide" the graph appears.
Vertical stretches and compressions multiply the output:
- where stretches the graph vertically (pulls it away from the x-axis)
- where compresses the graph vertically (pushes it toward the x-axis)
For example, doubles every y-value, making the graph twice as tall. And halves every y-value, making the graph half as tall.
Horizontal stretches and compressions multiply the input:
- where compresses the graph horizontally by a factor of
- where stretches the graph horizontally by a factor of
Horizontal changes are again counterintuitive: a larger value of makes the graph narrower, not wider. For example, compresses the graph to half its original width because every x-value is reached twice as fast.
Combining Multiple Transformations
When a function has several transformations at once, apply them in this order:
- Horizontal stretch/compression
- Reflection(s)
- Horizontal shift
- Vertical stretch/compression (and vertical reflection, if present)
- Vertical shift
Example: Break down .
First, rewrite the inside to see the horizontal shift clearly: .
Now apply transformations step by step:
- Horizontal compression by a factor of (from the multiplying )
- Horizontal shift right by units (from the inside)
- Vertical stretch by a factor of (from the multiplying )
- Reflection across the x-axis (from the negative sign)
- Vertical shift up by units (from the )
Common mistake: Students often read and say the horizontal shift is 1 unit right. You need to factor out the coefficient first: , so the shift is actually unit right.