In short
A translation slides a graph without stretching, compressing, or flipping it. Replacing x with x - a in a function shifts the graph right by a units (left if a < 0). Adding b to the function shifts the graph up by b units (down if b < 0). Together, y = f(x - a) + b translates the graph a units right and b units up.
Picture a rangoli pattern drawn on a large sheet of paper. You slide the entire sheet 3 tiles to the right and 2 tiles up. Every dot, every curve, every petal moves by the same amount. Nothing stretches. Nothing rotates. The shape is identical — it is just in a new position.
That slide is a translation. In the language of graphs, a translation takes the curve y = f(x) and relocates it to a new position on the coordinate plane. The shape of the curve is preserved exactly; only its address changes.
Vertical shift: y = f(x) + b
Start with a function you know well: f(x) = x^2, the standard parabola. Its vertex sits at the origin (0, 0).
What does y = x^2 + 3 look like? For any input x, the output is 3 more than x^2. Every point on the parabola is lifted 3 units higher. The vertex moves from (0, 0) to (0, 3). The shape is unchanged.
What does y = x^2 - 2 look like? Every point drops 2 units. The vertex moves to (0, -2).
The rule is straightforward:
Vertical translation
The graph of y = f(x) + b is the graph of y = f(x) shifted up by b units if b > 0, or down by |b| units if b < 0.
This makes intuitive sense: adding b to every output increases every y-coordinate by b. The x-coordinates are untouched.
Horizontal shift: y = f(x - a)
This one trips up more students than any other transformation. The rule is:
Horizontal translation
The graph of y = f(x - a) is the graph of y = f(x) shifted right by a units if a > 0, or left by |a| units if a < 0.
The counter-intuitive part: subtracting a from x shifts the graph to the right, not the left. "Minus means right" feels backwards. Here is why it works.
Consider f(x) = x^2 again, with its vertex at x = 0. The vertex is the point where the input to the squaring operation is zero — that is, x = 0. Now consider g(x) = (x - 3)^2. The input to the squaring operation is x - 3, and this is zero when x = 3. The vertex has moved to x = 3 — three units to the right.
Think of it this way: every feature of the original graph that happened at x = c now happens at x = c + a, because the new function needs x - a = c, so x = c + a. The "-a" inside the function delays every feature by a units.
An analogy: imagine a cricket match is broadcast live on TV but your stream has a 3-second delay. Every event — every boundary, every wicket — happens 3 seconds later on your screen. The delay does not change the match; it shifts everything forward in time. The "-3" in f(x - 3) is the same kind of delay, applied to the x-axis.
Notice that y = (x + 2)^2 is a shift to the left by 2. Writing it as y = (x - (-2))^2 makes the pattern clear: a = -2, so the shift is -2 units to the right, which is 2 units to the left.
Why the horizontal shift feels backwards
The vertical shift is direct: add b to the output, every point goes up by b. It acts on y, and y is the vertical axis. Straightforward.
The horizontal shift acts on the input. Replacing x with x - a does not add a to anything visible; it changes the question the function is being asked. At x = 5, the new function evaluates f(5 - 3) = f(2) — it is answering the question that the original function answered at x = 2. The output that used to appear at x = 2 now appears at x = 5. Everything slides right.
The key insight: operations on x (the input) act in the opposite direction to what the sign suggests. Operations on y (the output) act in the same direction.
This principle extends to all transformations. When you study reflections and scaling later, the same reversal appears: operations inside the function argument (x side) behave oppositely to what you expect; operations outside (y side) behave directly.
Combined translations: y = f(x - a) + b
When both translations are applied at once, each acts independently. The graph shifts a units horizontally (right if a > 0, left if a < 0) and b units vertically (up if b > 0, down if b < 0). The order does not matter — translations commute.
Take f(x) = |x|, the V-shaped absolute value function with vertex at the origin. The function y = |x - 2| + 3 shifts the V right by 2 and up by 3. The new vertex is at (2, 3).
The general combined translation: y = f(x - a) + b moves the graph of f by the vector (a, b). Think of (a, b) as a displacement arrow: a units horizontally, b units vertically.
Two worked examples
Example 1: Translating a parabola
The original function is f(x) = x^2. Write the equation of the parabola obtained by shifting f left by 4 and down by 1. Identify the new vertex.
Step 1. Apply the horizontal shift. Shifting left by 4 means a = -4, so replace x with x - (-4) = x + 4:
Why: a leftward shift of 4 is the same as a rightward shift of -4, giving x - (-4) = x + 4 inside the function.
Step 2. Apply the vertical shift. Shifting down by 1 means b = -1, so subtract 1:
Why: shifting down decreases every y-value by 1.
Step 3. Find the new vertex. The vertex of x^2 is at (0, 0). Applying the translation (a, b) = (-4, -1):
Why: the translation vector is added to every point, including the vertex.
Step 4. Verify with a specific point. On the original parabola, (2, 4) is a point (since 2^2 = 4). After translation: (2 - 4, 4 - 1) = (-2, 3). Check: (-2 + 4)^2 - 1 = 4 - 1 = 3. Correct.
Result: The translated parabola is y = (x + 4)^2 - 1 with vertex at (-4, -1).
Every point moved by exactly (-4, -1) — the shape is perfectly preserved, just relocated.
Example 2: Reading a translation from the equation
The function y = \sqrt{x - 5} + 2 is a translated version of y = \sqrt{x}. Identify the translation and find the new domain and range.
Step 1. Identify the horizontal shift. Inside the square root, x is replaced by x - 5, so a = 5. The graph shifts right by 5 units.
Why: x - 5 in the argument means every feature is delayed by 5 units along the x-axis.
Step 2. Identify the vertical shift. Outside the square root, +2 is added, so b = 2. The graph shifts up by 2 units.
Why: adding 2 to the output lifts every point by 2.
Step 3. The starting point of y = \sqrt{x} is (0, 0) (the leftmost point of the curve). After translation: (0 + 5, 0 + 2) = (5, 2).
Step 4. Domain and range. For \sqrt{x - 5} to be defined, x - 5 \ge 0, so x \ge 5. The domain is [5, \infty). The square root output is \ge 0, and adding 2 gives y \ge 2. The range is [2, \infty).
Why: the domain shifts by the same amount as the horizontal translation. The range shifts by the vertical translation.
Result: The translation is right 5, up 2. Domain: [5, \infty). Range: [2, \infty).
The translation moved the starting point, the domain boundary, and the range boundary all by the same amounts. This is always the case: translations shift every geometric feature uniformly.
Common confusions
-
"y = f(x - 3) shifts left by 3." No — it shifts right by 3. The subtraction inside the argument acts opposite to what you expect. To shift left by 3, you write y = f(x + 3) = f(x - (-3)).
-
"The order of horizontal and vertical shifts matters." It does not for translations alone. Shifting right 2 then up 5 gives the same result as shifting up 5 then right 2. Both produce y = f(x - 2) + 5. (The order does matter when you mix translations with reflections or scaling, but that is a story for those articles.)
-
"Adding a constant inside the function, like f(x + 3), is a vertical shift." No — any change to the input (x side) is a horizontal transformation. Only changes to the output (y side) are vertical. f(x + 3) is a horizontal shift left by 3. f(x) + 3 is a vertical shift up by 3.
-
"The domain and range never change under a translation." The domain shifts by the horizontal amount, and the range shifts by the vertical amount. For f(x) = \sqrt{x} with domain [0, \infty), the function f(x - 5) = \sqrt{x - 5} has domain [5, \infty).
-
"A translation changes the shape of the graph." It does not. A translation is a rigid motion — it preserves all distances, angles, and curvatures. The graph after a translation is congruent to the original.
Going deeper
If you can read off the translation from a given equation, write the equation from a given translation, and identify the new domain/range, you are ready for the other transformations: reflections and scaling. The rest of this section covers the formal framework.
Translations as vector addition
A translation by (a, b) can be written as a map on points:
This is vector addition: every point on the graph is displaced by the vector \begin{pmatrix} a \\ b \end{pmatrix}. The entire graph moves as a rigid body.
Two consecutive translations compose by adding their vectors:
This is why translations commute and form a group under addition.
Effect on key features
| Feature | How it changes |
|---|---|
| Vertex / turning point | Shifts by (a, b) |
| x-intercepts | Shift horizontally by a, then recalculate if b \neq 0 |
| y-intercept | Shifts vertically by b, then recalculate if a \neq 0 |
| Asymptotes | Horizontal asymptotes shift by b; vertical asymptotes shift by a |
| Domain | Shifts by a: [p, q] \to [p + a, q + a] |
| Range | Shifts by b: [r, s] \to [r + b, s + b] |
| Period (for periodic functions) | Unchanged |
Interactive: sliding a graph
Drag the sliders below to shift the parabola y = x^2 horizontally and vertically. The equation updates in real time.
Where this leads next
You now know how to translate any graph horizontally, vertically, or both. The remaining graph transformations build on the same framework.
- Graph Transformations — Reflections — flipping a graph across the x-axis or y-axis. Like translations, reflections act differently depending on whether they operate on x or y.
- Graph Transformations — Scaling — stretching or compressing a graph horizontally or vertically. The "opposite direction" rule for x-operations appears again.
- Graphs of Basic Functions — the parent functions (x^2, |x|, \sqrt{x}, 1/x, etc.) that serve as starting points for all transformations.
- Functions — Definition and Notation — the foundation: what f(x) means, domain, codomain, range.
- Inverse Functions — the graph of an inverse is a reflection across y = x, which is a different kind of geometric transformation.