2025-09-22

Population Growth in Biology Topics

  • Exponential Growth
  • Birth and Death Model
  • Visualizing it All

Introduction

  • Living things are born and die all the time.
  • Populations increases and decreases based on the amount of births compared to the amount of deaths.
  • We can use models to help us visualize population changes.

Exponential Growth

  • This is the exponential growth formula.
  • The larger a population is, the faster it will grow.
  • \(N_0\): The Population we start at
  • \(r\): Growth Rate
  • \(t\): Time

\[ N(t) = N_0 e^{rt} \]

Birth and Death Model

  • We are going to use a model that shows births and deaths per individual.
  • This will tell us the average contribution each population member makes.
  • This is useful when you want to compare different populations and how fast they are growing and changing.
  • \(r = b - d\): net growth rate
  • \({dN}/{dt}\): rate of change in a population over time

\[ r = b - d \quad \quad \frac{dN}{dt} = rN \]

Exponential Growth Graph

  • Do you notice how it grows faster over time?

Code for Exponential Growth Graph

library (ggplot2)

time <- 2:30
N0 <- 50
r <- 0.3
N <- N0 * exp(r * time)
df <- data.frame(time, N)

ggplot(df, aes(time, N)) +
  geom_line(color="black") +
  labs(title = "Exponential Growth Graph",
       x="Time",
       y="Population")

Birth and Death Model

-This graph shows us the green populations growing, the blue populations staying stable, and the red populations decreasing. Obviously, it isn’t this rigid in real life.

Code for Birth and Death Model

time <- 2:30
N0 <- 50

df <- data.frame(
  time = time,
  growth = N0 * exp(0.2 * time),
  decline = N0 * exp(-0.2 * time),
  stable = N0 * exp(0 * time))

ggplot() +
  geom_line(data=df, aes(time, growth), color="green") +
  geom_line(data=df, aes(time, decline), color="red") +
  geom_line(data=df, aes(time, stable), color="blue") +
  scale_y_log10() +
  labs(title="Birth and Death Model",
       x="Time",
       y = "Population")

Population Growth Plotly

Population Growth Plotly Code

library(plotly)

time <- 2:30
N0 <- 20
r <- 0.3
population <- N0 * exp(r * time)

plot_ly(x = ~time, y = ~population, type = 'scatter', mode = 'lines+markers') %>%
  layout(title = "Population Growth Plotly",
         xaxis = list(title = "Time"),
         yaxis = list(title = "Population"))