Comparison of Logarithmic Graphs  and{" "}
      .
    >
  }
  description="Notice the difference in graph direction."
  data={[
    {
      points: Array.from({ length: 100 }, (_, i) => {
        const x = (i / 99) * 8 + 0.01;
        return { x, y: Math.log2(x), z: 0 };
      }),
      color: getColor("SKY"),
      labels: [
        { text: "y = log₂ x (increasing)", at: 40, offset: [0.5, 0.5, 0] },
      ],
      showPoints: false,
    },
    {
      points: Array.from({ length: 100 }, (_, i) => {
        const x = (i / 99) * 8 + 0.01;
        return { x, y: Math.log(x) / Math.log(0.5), z: 0 };
      }),
      color: getColor("ROSE"),
      labels: [
        { text: "y = log₀.₅ x (decreasing)", at: 40, offset: [0.5, -0.5, 0] },
      ],
      showPoints: false,
    },
    {
      points: [
        { x: 0, y: -4, z: 0 },
        { x: 0, y: 4, z: 0 },
      ],
      color: getColor("PURPLE"),
      labels: [{ text: "x = 0 (asymptote)", at: 1, offset: [0.5, 0, 0] }],
      showPoints: false,
    },
  ]}
  cameraPosition={[0, 0, 12]}
  showZAxis={false}
/>
| Property           |   |  |
| ------------------ | ---------------------------- | ------------------------------- |
| Graph direction    | Increasing (monotonic)       | Decreasing (monotonic)          |
| Domain             |   |      |
| Range              | All real numbers             | All real numbers                |
| x-intercept        |  |     |
| Vertical asymptote |   |      |
## Transformations of Logarithmic Graphs
Logarithmic graphs can be transformed in various ways:
### Vertical Translation
We can shift the logarithmic function graph by adding or subtracting a constant  to the function.
  
  
        Graph shifts up if  and down if{" "}
        .
      >
    }
    data={[
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x), z: 0 };
        }),
        color: getColor("PURPLE"),
        labels: [{ text: "y = log₂ x", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x) + 2, z: 0 };
        }),
        color: getColor("SKY"),
        labels: [{ text: "y = log₂ x + 2", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x) - 2, z: 0 };
        }),
        color: getColor("ROSE"),
        labels: [{ text: "y = log₂ x - 2", at: 40, offset: [0.5, -1, 0] }],
        showPoints: false,
      },
    ]}
    cameraPosition={[0, 0, 15]}
    showZAxis={false}
  />
### Horizontal Translation
We can shift the logarithmic function graph by adding or subtracting a constant  to the function.
  
  
        Graph shifts right if  and left if{" "}
        .
      >
    }
    data={[
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 10 + 0.1;
          return { x, y: Math.log2(x), z: 0 };
        }),
        color: getColor("PURPLE"),
        labels: [{ text: "y = log₂ x", at: 40, offset: [0.5, 1, 0] }],
        showPoints: false,
      },
      {
        points: Array.from({ length: 100 }, (_, i) => {
          const x = (i / 99) * 8 + 2.1;
          return { x, y: Math.log2(x - 2), z: 0 };
        }),
        color: getColor("EMERALD"),
        labels: [{ text: "y = log₂(x - 2)", at: 40, offset: [1, -1, 0] }],
        showPoints: false,
      },
    ]}
    cameraPosition={[0, 0, 15]}
    showZAxis={false}
  />
## Exercises
1. Create a value table and draw the graphs of:
   - 
   - 
2. Determine the domain, range, and asymptote of function .
3. If  and , determine:
   - The shift of graph  relative to 
   - The domain of 
4. Sketch the graph of  and determine the y-intercept.
### Answer Key
1. Value tables:
   For :
   |  |  |  | 1 | 3 | 9 |
   |-------------------------|-------------------------------------|------------------------------------|----|----|----|
   |  | -2 | -1 | 0 | 1 | 2 |
   For :
   |  |  |  | 1 | 2 | 4 |
   |-------------------------|-------------------------------------|------------------------------------|----|----|----|
   |  | 2 | 1 | 0 | -1 | -2 |
2. For :
   - Domain: 
   - Range: All real numbers
   - Vertical asymptote: 
3. For :
   - Shift: 4 units to the right
   - Domain: 
4. For :
   - Graph  shifted 2 units up
   - There is no y-intercept because the domain is 
   
     
           Sketch of Graph 
         >
       }
       description="Logarithmic graph base 3 shifted 2 units up."
       data={[
         {
           points: Array.from({ length: 100 }, (_, i) => {
             const x = (i / 99) * 10 + 0.01;
             return { x, y: Math.log(x) / Math.log(3), z: 0 };
           }),
           color: getColor("PURPLE"),
           labels: [{ text: "y = log₃ x", at: 40, offset: [0.5, -0.5, 0] }],
           showPoints: false,
         },
         {
           points: Array.from({ length: 100 }, (_, i) => {
             const x = (i / 99) * 10 + 0.01;
             return { x, y: Math.log(x) / Math.log(3) + 2, z: 0 };
           }),
           color: getColor("EMERALD"),
           labels: [{ text: "y = log₃ x + 2", at: 50, offset: [0.5, 1, 0] }],
           showPoints: false,
         },
         {
           points: [
             { x: 1 / 9, y: Math.log(1 / 9) / Math.log(3) + 2, z: 0 },
             { x: 1 / 3, y: Math.log(1 / 3) / Math.log(3) + 2, z: 0 },
             { x: 1, y: 2, z: 0 },
             { x: 3, y: 3, z: 0 },
             { x: 9, y: 4, z: 0 },
           ],
           color: getColor("ROSE"),
           showPoints: true,
           labels: [
             { text: "(1, 2)", at: 2, offset: [0, 1, 0] },
             { text: "(3, 3)", at: 3, offset: [0, 0.5, 0] },
           ],
         },
         {
           points: [
             { x: -0.5, y: 2, z: 0 },
             { x: 10, y: 2, z: 0 },
           ],
           color: getColor("PURPLE"),
           labels: [{ text: "y = 2", at: 0, offset: [-0.5, 0.3, 0] }],
           showPoints: false,
         },
         {
           points: [
             { x: 0, y: -2, z: 0 },
             { x: 0, y: 5, z: 0 },
           ],
           color: getColor("PURPLE"),
           labels: [{ text: "x = 0 (asymptote)", at: 1, offset: [0.5, 0, 0] }],
           showPoints: false,
         },
       ]}
       cameraPosition={[0, 0, 15]}
       showZAxis={false}
     />